Zookeeper注册中心 |
Stable |
支持基于网络的集群方式,有普遍周边开源产品,建议使用dubbo-2.3.3以上版本(推荐使用) |
依赖于Zookeeper的稳定性 |
可用于生产环境 |
|
Redis注册中心 |
Stable |
支持基于客户端双写的集群方式,性能高 |
要求服务器时间同步,用于检查心跳过时脏数据 |
可用于生产环境 |
|
Multicast注册中心 |
Tested |
去中心化,不须要安装注册中心 |
依赖于网络拓扑和路由,跨机房有风险 |
小规模应用或开发测试环境 |
|
Simple注册中心 |
Tested |
Dogfooding,注册中心自己也是一个标准的RPC服务 |
没有集群支持,可能单点故障 |
试用 |
|
Simple监控中心 |
Stable |
支持JFreeChart统计报表 |
没有集群支持,可能单点故障,但故障后不影响RPC运行 |
可用于生产环境 |
|
Dubbo协议 |
Stable |
采用NIO复用单一长链接,并使用线程池并发处理请求,减小握手和加大并发效率,性能较好(推荐使用) |
在大文件传输时,单一链接会成为瓶颈 |
可用于生产环境 |
Alibaba |
Rmi协议 |
Stable |
可与原生RMI互操做,基于TCP协议 |
偶尔会链接失败,需重建Stub |
可用于生产环境 |
Alibaba |
Hessian协议 |
Stable |
可与原生Hessian互操做,基于HTTP协议 |
需hessian.jar支持,http短链接的开销大 |
可用于生产环境 |
|
Netty Transporter |
Stable |
JBoss的NIO框架,性能较好(推荐使用) |
一次请求派发两种事件,需屏蔽无用事件 |
可用于生产环境 |
Alibaba |
Mina Transporter |
Stable |
老牌NIO框架,稳定 |
待发送消息队列派发不及时,大压力下,会出现FullGC |
可用于生产环境 |
Alibaba |
Grizzly Transporter |
Tested |
Sun的NIO框架,应用于GlassFish服务器中 |
线程池不可扩展,Filter不能拦截下一Filter |
试用 |
|
Hessian Serialization |
Stable |
性能较好,多语言支持(推荐使用) |
Hessian的各版本兼容性很差,可能和应用使用的Hessian冲突,Dubbo内嵌了hessian3.2.1的源码 |
可用于生产环境 |
Alibaba |
Dubbo Serialization |
Tested |
经过不传送POJO的类元信息,在大量POJO传输时,性能较好 |
当参数对象增长字段时,需外部文件声明 |
试用 |
|
Json Serialization |
Tested |
纯文本,可跨语言解析,缺省采用FastJson解析 |
性能较差 |
试用 |
|
Java Serialization |
Stable |
Java原生支持 |
性能较差 |
可用于生产环境 |
|
Javassist ProxyFactory |
Stable |
经过字节码生成代替反射,性能比较好(推荐使用) |
依赖于javassist.jar包,占用JVM的Perm内存,Perm可能要设大一些:java -XX:PermSize=128m |
可用于生产环境 |
Alibaba |
Jdk ProxyFactory |
Stable |
JDK原生支持 |
性能较差 |
可用于生产环境 |
|
Failover Cluster |
Stable |
失败自动切换,当出现失败,重试其它服务器,一般用于读操做(推荐使用) |
重试会带来更长延迟 |
可用于生产环境 |
Alibaba |
Failfast Cluster |
Stable |
快速失败,只发起一次调用,失败当即报错,一般用于非幂等性的写操做 |
若是有机器正在重启,可能会出现调用失败 |
可用于生产环境 |
Alibaba |
Failsafe Cluster |
Stable |
失败安全,出现异常时,直接忽略,一般用于写入审计日志等操做 |
调用信息丢失 |
可用于生产环境 |
Monitor |
Failback Cluster |
Tested |
失败自动恢复,后台记录失败请求,定时重发,一般用于消息通知操做 |
不可靠,重启丢失 |
可用于生产环境 |
Registry |
Forking Cluster |
Tested |
并行调用多个服务器,只要一个成功即返回,一般用于实时性要求较高的读操做 |
须要浪费更多服务资源 |
可用于生产环境 |
|
Random LoadBalance |
Stable |
随机,按权重设置随机几率(推荐使用) |
在一个截面上碰撞的几率高,重试时,可能出现瞬间压力不均 |
可用于生产环境 |
Alibaba |
RoundRobin LoadBalance |
Stable |
轮询,按公约后的权重设置轮询比率 |
存在慢的机器累积请求问题,极端状况可能产生雪崩 |
可用于生产环境 |
|
LeastActive LoadBalance |
Stable |
最少活跃调用数,相同活跃数的随机,活跃数指调用先后计数差,使慢的机器收到更少请求 不支持权重,在容量规划时,不能经过权重把压力导向一台机器压测容量 |
可用于生产环境 |
|
|
条件路由规则 |
Stable |
基于条件表达式的路由规则,功能简单易用 |
有些复杂多分支条件状况,规则很难描述 |
可用于生产环境 |
Alibaba |
脚本路由规则 |
Tested |
基于脚本引擎的路由规则,功能强大 |
没有运行沙箱,脚本能力过于强大,可能成为后门 |
试用 |
|
Spring Container |
Stable |
自动加载META-INF/spring目录下的全部Spring配置 |
|
可用于生产环境 |
Alibaba |
Jetty Container |
Stable |
启动一个内嵌Jetty,用于汇报状态 |
大量访问页面时,会影响服务器的线程和内存 |
可用于生产环境 |
Alibaba |
Log4j Container |
Stable |
自动配置log4j的配置,在多进程启动时,自动给日志文件按进程分目录 |
用户不能控制log4j的配置,不灵活 |
可用于生产环境 |
Alibaba |