一款分布式服务框架,高性能和透明化的RPC远程服务调用方案。主要提供服务治理的解决方案。
注册中心主要作用:
1、动态加入,服务提供者通过注册中心动态的把自己暴露给消费者,无需消费者逐个更新配置文件。
2、动态发现服务,消费者可以动态发现新的服务,无需重启生效。
3、统一配置,避免本地配置导致每个服务配置不一致。
4、动态调整,注册中心支持参数动态调整,新参数自动更新到所有相关的服务节点。
5、统一管理,依靠注册中心数据,可以统一管理配置服务节点。
Dubbo注册中心选型:
Multicast注册中心
Zookeeper注册中心
Redis注册中心
Simple注册中心
常用的类型卫Zookeeper、redis两种方式。
Dubbo注册中心的优缺点:
优点:
透明化的远程方法调用
- 像调用本地方法一样调用远程方法;只需简单配置,没有任何API侵入。
软负载均衡及容错机制
可在内网替代nginx lvs等硬件负载均衡器。
服务注册中心自动注册 & 配置管理
-不需要写死服务提供者地址,注册中心基于接口名自动查询提供者ip。
使用类似zookeeper等分布式协调服务作为服务注册中心,可以将绝大部分项目配置移入zookeeper集群。
服务接口监控与治理
-Dubbo-admin与Dubbo-monitor提供了完善的服务接口管理与监控功能,针对不同应用的不同接口,可以进行 多版本,多协议,多注册中心管理。
缺点:
只支持JAVA语言
注册中心原理:
主要工作流程可以分为如下几步:
1、服务提供者启动之后,会将服务注册到注册中心。
2、消费者启动之后主动订阅注册中心上提供者服务,从而获取到当前所有可用服务,同时留下一个回调函数。
3、若服务提供者新增或下线,注册中心将通过第二步的注册的回调函数通知消费者。
4、dubbo-admin(服务治理中心)将会订阅服务提供者以及消费者,从而可以在控制台管理所有服务提供者以及消费者。
5、Dubbo 之前版本主要可以使用 ZooKeeper,Redis 作为注册中心 ,而随着 Dubbo 版本不断更新,目前还支持nacos,consul,etcd 等做为注册中心。