注册中心概述
Dubbo是支持多个注册中心的,而且支持同时向多个注册中心注册。目前Dubbo所支持四种注册中心:
注册中心 | 概述 |
---|---|
Multicast | 不用安装和启动任何中心节点,只要提供者与消费者的广播地址一样,就可以互相发现。 |
Zookeeper | Zookeeper是一个高性能,分布式的,开源分布式应用协调服务; 它以Fast Paxos算法为基础,为分布式应用提供一致性解决方案,推荐在生产环境下使用。 |
Redis | 使用Redis的Key/Map结构存储服务的URL地址以及过期时间, 同时使用Publish/Subscribe事件通知数据变更。 |
Simple | 它本身就是一个普通的Dubbo服务,可以减少第三方依赖,使整体通信方式一致。 |
适用场景
这里说明以常用的两种注册中心,Multicast、Zookeeper。
Multicast注册中心
- 不需要安装和启动任何中心节点,只要服务提供者与服务消费者的广播地址一样,就可以互相发现;
- 组播地址段: 224.0.0.0 - 239.255.255.255,比如:multicast://224.5.6.7:1234
- 组播只适合小规模应用或开发调试使用。
Zookeeper注册中心
- Zookeeper:是一个高性能,分布式的,开源分布式应用协调服务;
- Dubbo官方推荐使用此注册中心;适用于生产环境;
- 实现dubbo的zookeeper注册中心,仅需在服务提供者和服务消费者的spring配置文件配置即可。
Xml的两种配置方式:
<dubbo:registry address="zookeeper://127.0.0.1:2181" />
<dubbo:registry protocol="zookeeper" address="127.0.0.1:2181" />
SpringBoot配置文件的配置方式:
#dubbo配置
dubbo:
application:
name: wsp-system-provider
registry: zookeeper://127.0.0.1:2181
工作流程
环节 | 说明 |
---|---|
服务提供者启动时 | 向 /dubbo/com.foo.BarService/providers 目录下写入自己的 URL 地址 |
服务消费者启动时 | 订阅 /dubbo/com.foo.BarService/providers 目录下的提供者 URL 地址。 并向/dubbo/com.foo.BarService/consumers 目录下写入自己的 URL 地址 |
监控中心启动时 | 订阅 /dubbo/com.foo.BarService 目录下的所有提供者和消费者 URL 地址。 |
服务暴露
在服务通过注册中心注册后,是如何提供服务给消费者使用的呢?这就需要使用dubbo:service标签进行服务暴露了。用法如下:
基于配置文件
<dubbo:service interface="cn.zealon.app.system.dic.service.DataDicService" ref="dataDicService" version="1.0">
基于注解
@Service(version = "1.0")
@Component
public class DataDicServiceImpl extends AbstractBaseService<SysDataDic> implements DataDicService {
....
作者: Zealon
崇尚简单,一切简单自然的事物都是美好的。