com.github.iancao:caoyx-rpc-spring

HP,HA distributed RPC framework Based on Java

License

License

GroupId

GroupId

com.github.iancao
ArtifactId

ArtifactId

caoyx-rpc-spring
Last Version

Last Version

1.0.0
Release Date

Release Date

Type

Type

pom
Description

Description

HP,HA distributed RPC framework Based on Java

Download caoyx-rpc-spring

How to add to project

<!-- https://jarcasting.com/artifacts/com.github.iancao/caoyx-rpc-spring/ -->
<dependency>
    <groupId>com.github.iancao</groupId>
    <artifactId>caoyx-rpc-spring</artifactId>
    <version>1.0.0</version>
    <type>pom</type>
</dependency>
// https://jarcasting.com/artifacts/com.github.iancao/caoyx-rpc-spring/
implementation 'com.github.iancao:caoyx-rpc-spring:1.0.0'
// https://jarcasting.com/artifacts/com.github.iancao/caoyx-rpc-spring/
implementation ("com.github.iancao:caoyx-rpc-spring:1.0.0")
'com.github.iancao:caoyx-rpc-spring:pom:1.0.0'
<dependency org="com.github.iancao" name="caoyx-rpc-spring" rev="1.0.0">
  <artifact name="caoyx-rpc-spring" type="pom" />
</dependency>
@Grapes(
@Grab(group='com.github.iancao', module='caoyx-rpc-spring', version='1.0.0')
)
libraryDependencies += "com.github.iancao" % "caoyx-rpc-spring" % "1.0.0"
[com.github.iancao/caoyx-rpc-spring "1.0.0"]

Dependencies

compile (2)

Group / Artifact Type Version
org.slf4j : log4j-over-slf4j jar 1.8.0-beta4
com.github.iancao : caoyx-rpc-core jar 1.0.0

provided (5)

Group / Artifact Type Version
org.projectlombok : lombok jar 1.16.22
org.springframework : spring-beans jar 5.1.6.RELEASE
org.springframework : spring-core jar 5.1.6.RELEASE
org.springframework : spring-context jar 5.1.6.RELEASE
org.springframework.boot : spring-boot-autoconfigure jar 2.1.4.RELEASE

Project Modules

  • caoyx-rpc-spring-provider
  • caoyx-rpc-spring-invoker
  • caoyx-rpc-spring-core

Build Status license maven maven

caoyx-rpc

caoyx-rpc是一个基于Java语言开发的开源RPC服务框架,提供高可用,高可用的远程调用能力。

Features特性:

  1. 面向接口代理:调用方和提供方通过一个接口jar包进行耦合,系统封装了远程通讯的实现,用户在使用时就跟调用本地实现一样。
  2. 支持多种调用方式:目前支持 同步调用, Future异步调用, CallBack,OneWay
  3. 支持隐式参数:用户可以在 CaoyxRpcContext 上下文中放入自定义信息,这些信息也会随着调用发送到服务提供方
  4. 支持泛化调用:调用放可以不依赖于服务提供方的接口jar包而进行调用服务提供方的服务
  5. 负载均衡:提供丰富的负载均衡策略,目前包括:随机一致性Hash
  6. 服务注册与发现:支持服务自动注册和手动注册
    • 自动注册:目前支持Zookeeper
    • 手动注册:用户在配置中增加具体的服务提供方的hostPorts,可以是多个服务提供方
  7. 高度扩展能力:通过自定义SPI进行高度扩展
  8. 多版本能力:服务提供方提供同一接口多版本实现,调用方选择某个版本进行使用
  9. 多种序列化选择方式:目前支持JDKHessian2ProtoStuff序列化方式
  10. 支持用户自定义调用链中的filter:用户可以自定义filter并加入到调用链之中
  11. 与SpringBoot高度集成
  12. 支持调用方设置超时时间失败重试次数
  13. 支持服务版本与实现版本调用:服务提供方可以设置其服务版本和其实现实现版本,调用方同时设置提供方的服务版本和实现版本进行调用
  14. 支持调用方的失败回调超时回调
  15. 支持LZ4压缩
  16. 支持调用方与提供方之间的鉴权,服务提供方配置一个accessToken,即只接受具有相同accessToken的Request请求。
  17. 支持kill pid(非kill -9 )的优雅停机
  18. 支持Provider方的限流,以及增加Invoker被限流后的回调接口

如何接入

1. SpringBoot接入

Caoyx-Rpc SpringBoot Demo

2. 原生接入

Caoyx-Rpc Simple Demo

Benchmark基准测试

CaoyxRpc/Dubbo/Grpc/Thrift 基准测试

如何联系

贡献

欢迎参与项目贡献!比如提交PR修复一个bug,或者新建 Issue 讨论新特性或者变更。

License

caoyx-rpc is under the Apache 2.0 license. See the LICENSE file for details.

产品开源免费,并且将持续提供免费的社区技术支持。

Versions

Version
1.0.0