{"id":14973057,"url":"https://github.com/iancao/caoyx-rpc","last_synced_at":"2025-10-26T20:32:36.060Z","repository":{"id":39813881,"uuid":"228374442","full_name":"IanCao/caoyx-rpc","owner":"IanCao","description":"基于Java语言开发的开源RPC服务框架，提供高性能，高可用的远程调用能力。","archived":false,"fork":false,"pushed_at":"2022-12-16T04:58:08.000Z","size":724,"stargazers_count":6,"open_issues_count":11,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-01T00:33:08.966Z","etag":null,"topics":["high-available","high-performance","loadbalance","netty","rpc","spi","springboot","zookeeper"],"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/IanCao.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":"2019-12-16T11:42:57.000Z","updated_at":"2023-12-05T03:23:19.000Z","dependencies_parsed_at":"2023-01-29T09:16:00.045Z","dependency_job_id":null,"html_url":"https://github.com/IanCao/caoyx-rpc","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IanCao%2Fcaoyx-rpc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IanCao%2Fcaoyx-rpc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IanCao%2Fcaoyx-rpc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IanCao%2Fcaoyx-rpc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IanCao","download_url":"https://codeload.github.com/IanCao/caoyx-rpc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238397262,"owners_count":19465145,"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":["high-available","high-performance","loadbalance","netty","rpc","spi","springboot","zookeeper"],"created_at":"2024-09-24T13:48:01.324Z","updated_at":"2025-10-26T20:32:35.544Z","avatar_url":"https://github.com/IanCao.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.com/IanCao/caoyx-rpc.svg?branch=master)](https://travis-ci.com/IanCao/caoyx-rpc) \n![license](https://img.shields.io/github/license/IanCao/caoyx-rpc.svg)\n![maven](https://img.shields.io/nexus/s/com.github.iancao/caoyx-rpc?server=https%3A%2F%2Foss.sonatype.org)\n![maven](https://img.shields.io/nexus/r/com.github.iancao/caoyx-rpc?server=https%3A%2F%2Foss.sonatype.org)\n# caoyx-rpc\ncaoyx-rpc是一个基于Java语言开发的开源RPC服务框架，提供高可用，高可用的远程调用能力。\n\n### Features特性：\n1. 面向接口代理：调用方和提供方通过一个接口jar包进行耦合，系统封装了远程通讯的实现，用户在使用时就跟调用本地实现一样。\n2. 支持多种调用方式：目前支持 **同步调用**, **Future异步调用**, **CallBack**,**OneWay**\n3. 支持隐式参数：用户可以在 CaoyxRpcContext 上下文中放入自定义信息，这些信息也会随着调用发送到服务提供方\n4. 支持泛化调用：调用放可以不依赖于服务提供方的接口jar包而进行调用服务提供方的服务\n5. 负载均衡：提供丰富的负载均衡策略，目前包括：**随机**，**一致性Hash**\n6. 服务注册与发现：支持服务自动注册和手动注册\n   - 自动注册：目前支持Zookeeper\n   - 手动注册：用户在配置中增加具体的服务提供方的hostPorts,可以是多个服务提供方\n7. 高度扩展能力：通过自定义SPI进行高度扩展\n8. 多版本能力：服务提供方提供同一接口多版本实现，调用方选择某个版本进行使用\n9. 多种序列化选择方式：目前支持**JDK**，**Hessian2**，**ProtoStuff**序列化方式\n10. 支持用户自定义调用链中的filter：用户可以自定义filter并加入到调用链之中\n11. 与SpringBoot高度集成\n12. 支持调用方设置**超时时间**和**失败重试次数**\n13. 支持服务版本与实现版本调用：服务提供方可以设置其服务版本和其实现实现版本，调用方同时设置提供方的服务版本和实现版本进行调用\n14. 支持调用方的**失败回调**和**超时回调**\n15. 支持LZ4压缩\n16. 支持调用方与提供方之间的鉴权，服务提供方配置一个accessToken，即只接受具有相同accessToken的Request请求。\n17. 支持kill pid（非kill -9 ）的优雅停机\n18. 支持Provider方的限流，以及增加Invoker被限流后的回调接口\n\n### 如何接入\n#### 1. [SpringBoot接入](doc/SpringBoot接入.md)\n\n[Caoyx-Rpc SpringBoot Demo](https://github.com/IanCao/caoyx-rpc/tree/master/caoyx-rpc-samples/caoyx-rpc-sample-springboot)\n\n\n#### 2. [原生接入](doc/原生方式接入.md)\n\n[Caoyx-Rpc Simple Demo](https://github.com/IanCao/caoyx-rpc/tree/master/caoyx-rpc-samples/caoyx-rpc-sample-simple)\n\n\n### Benchmark基准测试\n[CaoyxRpc/Dubbo/Grpc/Thrift 基准测试](doc/Benchmark.md)\n\n### 如何联系\n- 在github提Issue\n- 发送邮件至caoyixiong@apache.org\n\n### 贡献\n欢迎参与项目贡献！比如提交PR修复一个bug，或者新建 Issue 讨论新特性或者变更。\n\n### License\ncaoyx-rpc is under the Apache 2.0 license. See the LICENSE file for details.\n\n产品开源免费，并且将持续提供免费的社区技术支持。","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiancao%2Fcaoyx-rpc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiancao%2Fcaoyx-rpc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiancao%2Fcaoyx-rpc/lists"}