基于 Java + Etcd + Vert.x + 自定义协议实现,开发者只需引入 Spring Boot Starter,就能通过注解和配置的方式快速使用框架,实现像调用本地方法一样轻松调用远程服务。
- 基于
Vert.x的TCP协议实现长连接通信,包括心跳检测、解决粘包半包等 - 基于
Etcd实现分布式服务注册与发现,服务支持自动续期与下线注销 - 实现了轮询、随机、加权随机等负载均衡算法
- 支持
fastJson、hessian、kryo、jdk的序列化方式 - 支持多种远程调用请求重试与容错机制
-
使用
SPI机制方便支持开发者自行扩展注册中心、负载均衡器、重试策略、容错策略 -
通过修改配置文件更换序列化方式、注册中心
-
消费者本地缓存注册中心服务信息,并通过Etcd Watch机制更新缓存。
-
支持注解驱动,降低开发者使用成本
-
自定义紧凑型消息结构
RPC协议,解决TCP半包粘包,提升网络传输性能 -
使用本地对象维护已获取到的服务提供者节点缓存,减轻注册中心压力。
-
config 配置层:相关的配置
-
proxy 服务代理层:负责对底层调用细节的封装,调用远程方法像调用本地的方法一样;
-
registry 注册中心层:封装服务地址的注册与发现,以及一些权重,配置动态调整等功能;
-
cluster 路由层:负责封装多个提供者的路由及负载均衡,并桥接注册中心;
-
protocol 协议层:负责请求数据的转码封装等作用;
-
serialize 数据序列化层:对需要在网络传输的数据进行序列化;
-
tolerant 容错层:当服务调用出现失败之后需要有容错层的兜底辅助;
目录




