LongKui, A high performance RPC framework based on Netty.
龙葵:千年不灭,唯情而已。古姜国公主,被封印在魔剑千年,只为了等待与王兄重逢。
RPC:像调用本地方法一样调用远程服务。
LongKui 是一个分布式服务框架,提供高性能的 RPC 远程过程调用功能。拥有分布式、高性能、服务治理、注册中心、负载均衡及微内核架构等诸多特性。
- 基于
Netty框架构建网络通讯层。高性能。 - 多序列化方式:支持
Hessian2、Json、XML、Protostuff及Kryo等方式。 - 多压缩方式:支持
Snappy、DEFLATE、Gzip、bzip、LZ4及LZO等方式。 - 多动态代理方式:支持
JDK、Cglib、Javassist及Byte Buddy等方式。 - 注册中心:提供基于
Zookeeper的服务注册与发现。 - 负载均衡/软负载:提供多种负载均衡算法,包括随机/加权随机、轮询/加权轮询、一致性哈希等。
- 多调用方式:支持同步
Sync、异步Future、回调Callback和单向调用Oneway四种方式。 - 微内核架构:增强
JDK原生SPI机制(参考了Dubbo框架),使用SPI加载插件,可以轻松替换每个组件的实现,包括序列化器、压缩器、动态代理、注册中心、负载均衡算法等。用户只需实现相关接口,然后在/META-INF/extensions目录下配置实现类的类路径即可替换框架的默认实现。 - 插件机制:通过插件实现高可扩展性,在
RPC请求生命周期各个阶段注入插件,实现自定义的业务逻辑。 - 泛化调用:不依赖服务提供方的
API接口,用Map封装参数直接调用。 - ......
拉取代码
git clone https://github.com/llnancy/longkui.git// todo