Apache Dubbo 是一个高可用的,基于Java的开源RPC框架。
Dubbo框架不仅仅是具备RPC访问功能,还包含服务治理功能。
这是Dubbo官方给的一张架构图,这张图这表达了整个Dubbo框架实现PRC调用的原理
其实简单的理解就是在服务的提供者和服务的消费者之间存在一个存放地址的中间介(Registry注册中心)
Provider发布之后进行注册到注册中心中,Consumer就可以使用注册中心的地址对Provider进行创建一个代理的对象从而调用远程方法 Monitor监控器这个就是来对 Provider被调用的次数和Consumer调用的次数做一个统计。
看了这张图 对Dubbo框架的原理又了一个基础的认识,再来看一下所常用的协议,既然用的是Dubbo框架,那么来说一下Dubbo支持的协议和注册中心
Dubbo协议:
优点:使用NIO复用单一长连接,并且使用线程池做并发处理减少捂手和增大并大效率,性能较好。协议的默认端口是20880.(端口是服务端Provider使用的)。
缺点:上传大文件会出现堵塞。(不建议使用文件传输)
RMI(Remote Method Invocation)协议
优点:JDK自带
缺点:连接偶尔失败
Zookeeper 优点:支持分布式.很多周边产品.
缺点: 受限于Zookeeper软件的稳定性.Zookeeper专门分布式辅助软件,稳定较优(说是缺点也是优点)
Multicast 优点:去中心化,不需要单独安装软件.
缺点:不能跨机房
Redis: 优点:支持集群,性能高
缺点:要求服务器时间同步.否则可能出现集群失败问题.
Simple:优点: 标准RPC服务.没有兼容问题