{"id":15138469,"url":"https://github.com/jollycorivug/jrpc","last_synced_at":"2026-02-12T09:03:13.251Z","repository":{"id":232529659,"uuid":"772039292","full_name":"JollyCorivuG/jrpc","owner":"JollyCorivuG","description":"jRPC，一款基于 Etcd + Vert.x 的高性能 RPC 框架 ","archived":false,"fork":false,"pushed_at":"2024-04-09T16:01:59.000Z","size":172,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-12T14:53:52.577Z","etag":null,"topics":["etcd","jdk21","vertx","zookeeper"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JollyCorivuG.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-14T12:23:56.000Z","updated_at":"2024-04-12T03:56:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"444574f1-ef82-4c5b-9593-c1527de489f4","html_url":"https://github.com/JollyCorivuG/jrpc","commit_stats":null,"previous_names":["jollycorivug/jrpc"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JollyCorivuG%2Fjrpc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JollyCorivuG%2Fjrpc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JollyCorivuG%2Fjrpc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JollyCorivuG%2Fjrpc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JollyCorivuG","download_url":"https://codeload.github.com/JollyCorivuG/jrpc/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247457807,"owners_count":20941912,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["etcd","jdk21","vertx","zookeeper"],"created_at":"2024-09-26T07:24:19.521Z","updated_at":"2026-02-12T09:03:13.207Z","avatar_url":"https://github.com/JollyCorivuG.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# jRPC - 一款高性能 RPC 框架\n## 项目介绍\njRPC 是一款基于 Java + Etcd + Vert.x 的高性能 RPC 框架，支持服务注册、服务发现、负载均衡、重试、容错、自定义协议等特性。另外，框架采用 Java SPI 机制让开发者可以自行扩展功能，并提供了 Spring Boot Starter 注解驱动，让开发者简单地融合 RPC 远程调用到 Spring Boot 项目中。 \n## 项目架构\n![系统架构.png](./docs/系统架构.png)\n## Spring Boot Starter 快速开始\n\u003e 由于 jRPC 是用的是 Etcd | Zookeeper 作为注册中心，所以在使用 Spring Boot Starter 之前需要先安装 Etcd | Zookeeper 服务\n### 1. 引入 pom 依赖\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ebupt.edu.jhc\u003c/groupId\u003e\n    \u003cartifactId\u003ejrpc-spring-boot-starter\u003c/artifactId\u003e\n    \u003cversion\u003e1.0-SNAPSHOT\u003c/version\u003e\n\u003c/dependency\u003e\n```\n### 2. 配置 application.properties\n```properties\nrpc.name=jRPC \nrpc.version=1.0\nrpc.serverHost=localhost\nrpc.serverPort=8081\nrpc.mock=false | true\nrpc.serializer=jdk | hessian | kryo | 自定义的序列化器\nrpc.registryConfig.registry=etcd | zookeeper | 自定义的注册中心\nrpc.registryConfig.address=注册中心地址\nrpc.loadBalancer=roundRobin | random | consistentHash | 自定义的负载均衡器\nrpc.retryStrategy=no | fixedInterval | 自定义的重试策略\nrpc.tolerantStrategy=failFast | failSafe | 自定义的容错策略\n```\n### 3. 相关注解使用\n#### @EnableRPC：注解在 Spring Boot 启动类上，用于开启 RPC 功能\n```java\n@SpringBootApplication\n@EnableRPC\npublic class ExampleSpringbootProviderApplication {\n    public static void main(String[] args) {\n        SpringApplication.run(ExampleSpringbootProviderApplication.class, args);\n    }\n}\n```\n#### @RPCService：注解在服务提供者的接口实现类上，用于暴露服务\n```java\n@Service\n@RPCService\npublic class UserServiceImpl implements UserService {\n    @Override\n    public User getUser(User user) {\n        System.out.println(\"用户名：\" + user.getName());\n        return user;\n    }\n}\n```\n#### @RPCReference：注解在服务消费者的接口上，用于引用服务\n```java\n@Service\npublic class ExampleServiceImpl {\n\n    /**\n     * 使用 RPC 框架注入\n     */\n    @RPCReference\n    private UserService userService;\n\n    /**\n     * 测试方法\n     */\n    public void test() {\n        var user = new User();\n        user.setName(\"JollyCorivuG\");\n        var resultUser = userService.getUser(user);\n        System.out.println(resultUser.getName());\n    }\n\n}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjollycorivug%2Fjrpc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjollycorivug%2Fjrpc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjollycorivug%2Fjrpc/lists"}