{"id":20791656,"url":"https://github.com/pwh19920920/xmutca-rpc","last_synced_at":"2025-06-26T08:03:58.927Z","repository":{"id":37121928,"uuid":"266728387","full_name":"pwh19920920/xmutca-rpc","owner":"pwh19920920","description":"Xmutca-rpc是一个基于netty开发的分布式服务框架，提供稳定高性能的RPC远程服务调用功能，支持注册中心，服务治理，负载均衡等特性，开箱即用。","archived":false,"fork":false,"pushed_at":"2022-06-17T03:14:31.000Z","size":231,"stargazers_count":19,"open_issues_count":3,"forks_count":8,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-05T21:26:29.391Z","etag":null,"topics":["distributed","ha","nacos","netty","registry","rpc"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pwh19920920.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-05-25T08:43:04.000Z","updated_at":"2023-04-07T10:59:21.000Z","dependencies_parsed_at":"2022-08-19T11:10:25.840Z","dependency_job_id":null,"html_url":"https://github.com/pwh19920920/xmutca-rpc","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pwh19920920/xmutca-rpc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pwh19920920%2Fxmutca-rpc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pwh19920920%2Fxmutca-rpc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pwh19920920%2Fxmutca-rpc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pwh19920920%2Fxmutca-rpc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pwh19920920","download_url":"https://codeload.github.com/pwh19920920/xmutca-rpc/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pwh19920920%2Fxmutca-rpc/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262026903,"owners_count":23246952,"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":["distributed","ha","nacos","netty","registry","rpc"],"created_at":"2024-11-17T15:46:17.683Z","updated_at":"2025-06-26T08:03:58.907Z","avatar_url":"https://github.com/pwh19920920.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Xmutca-rpc\n\nXmutca-rpc是一个基于netty开发的分布式服务框架，提供稳定高性能的RPC远程服务调用功能，支持注册中心，服务治理，负载均衡等特性，开箱即用。\n\n## 模块介绍\n- 1.xmutca-rpc-core             rpc核心模块\n- 2.xmutca-rpc-example          rpc示例\n- 3.xmutca-rpc-local            本地容器实现\n- 4.xmutca-rpc-registry-nacos   nacos注册中心\n- 5.xmutca-rpc-spring           spring容器实现\n\n## 实现功能\n- 1.核心实现：SPI扩展，支持动态加载拓展实现，具体可以看实现类ExtensionLoader\n- 2.负载均衡：现在已支持轮训负载，随机负载，也可自定义\n- 3.集群容错：FailFast快速失败、 FailOver故障切换，FailSafe故障安全, FailBack失败恢复，Broadcast广播调用\n- 4.注册发现：目前支持接入nacos\n- 5.容器支持：支持本地java容器，支持spring容器\n- 6.注解拓展：支持注解加载提供者，注解获取远程rpc对象\n- 7.序列方式：支持fastJson, Kryo, protostuff序列化，默认走protostuff序列化\n- 8.极速拓展：允许加载自定义的过滤器，自定义容器，自定义注册中心等等。\n\n## 快速开始\n```\n1. maven配置\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.xmutca\u003c/groupId\u003e\n    \u003cartifactId\u003exmutca-rpc-core\u003c/artifactId\u003e\n    \u003cversion\u003e0.0.1-SNAPSHOT \u003c/version\u003e\n\u003c/dependency\u003e\n\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.xmutca\u003c/groupId\u003e\n    \u003cartifactId\u003exmutca-rpc-spring\u003c/artifactId\u003e\n    \u003cversion\u003e0.0.1-SNAPSHOT \u003c/version\u003e\n\u003c/dependency\u003e\n\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.xmutca\u003c/groupId\u003e\n    \u003cartifactId\u003exmutca-rpc-registry-nacos\u003c/artifactId\u003e\n    \u003cversion\u003e0.0.1-SNAPSHOT\u003c/version\u003e\n\u003c/dependency\u003e\n\n2. 定义接口\npublic interface HelloService {\n\n    /**\n     * test\n     * @param msg\n     * @return\n     */\n    String sayHello(String msg);\n}\n\n3. 提供者实现接口\n@Component\n@Provider(interfaceClass = HelloService.class)\npublic class HelloServiceImpl implements HelloService {\n\n    @Autowired\n    private TestService testService;\n\n    @Override\n    public String sayHello(String msg) {\n        return testService.test() + \" -\u003e \" + msg;\n    }\n}\n\n4. 提供者配置\nrpc:\n  registry: nacos://localhost:8848 # 注册中心地址\n  provider: # 提供者配置\n    corePoolSize: 60       # 核心线程数\n    maxPoolSize: 300       # 最大线程数\n    port: 8886             # 提供者端口\n    scanPackage: com.xmutca.rpc.provider.facade   # 扫描提供者包路径\n    metadata:              # 服务元数据\n      group: \"order\"       # 服务分组\n      serviceName: \"test\"  # 服务名称\n      version: \"v1.0.0\"    # 服务版本\n\n\n5. 启动提供者\n@EnableXmutcaRpc\n@SpringBootApplication\npublic class XmutcaSpringProviderApplication {\n\n    public static void main(String[] args) {\n        SpringApplication.run(XmutcaSpringProviderApplication.class, args);\n    }\n}\n\n6. 消费者引用\n@RestController\n@RequestMapping\npublic class ControllerTest {\n\n    @Reference(serviceName = \"test\", group = \"order\", interfaceClass = HelloService.class)\n    private HelloService helloService;\n\n    @RequestMapping(\"/test\")\n    public Object test() {\n        return helloService.sayHello(\"test\");\n    }\n}\n\n7. 消费者配置\nrpc:\n  registry: nacos://localhost:8848\n  consumer:\n    - timeout: 1000               # 超时配置\n      metadata:\n        group: \"order\"            # 服务分组\n        serviceName: \"test\"       # 服务名称\n        version: \"v1.0.0\"         # 服务版本\n\n8. 启动消费者\n@EnableXmutcaRpc\n@SpringBootApplication\npublic class XmutcaSpringConsumerApplication {\n\n    public static void main(String[] args) {\n        SpringApplication.run(XmutcaSpringConsumerApplication.class, args);\n    }\n}\n```\n\n## 作者题外话\n\n此项目欢迎各位gay友试用，互相学习，及时反馈，谢谢。","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpwh19920920%2Fxmutca-rpc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpwh19920920%2Fxmutca-rpc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpwh19920920%2Fxmutca-rpc/lists"}