Dubbo 配置中心、元数据中心

 

配置中心

每个服务的配置都写在自己的配置文件中,更新配置时要一台机器一台机器地修改,很不方便,

dubbo一般使用zk作为配置管理中心,统一管理dubbo的配置,也有用diamond的。

 

 

dubbo admin  ->  配置管理  -> 创建

 

全局配置的名称使用global,对所有的服务提供者、消费者均有效,写一些公共配置,比如

#注册中心
dubbo.registry.address=zookeeper://192.168.1.9:2181
#连接超时
dubbo.registry.timeout=10000

#dubbo使用的协议、端口
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880

配置会保存在 zkServer的/dubbo/config 中,其中全局配置保存在config下面的 dubbo/dubbo.properties 中。

 

应用级别配置的名称使用服务名(dubbo.application.name),该配置只对指定的服务有效,一般写这个服务私有的配置,比如 dubbo.scan.base-packages 。

如果全局配置中也设置了相同的配置项,以应用级配置为准(越精细的优先级越高)。

 

 

使用配置中心后,提供者、消费者在springboot配置文件中不用写dubbo的其它配置,只写配置中心的配置即可:

#配置中心地址
dubbo.config-center.address=zookeeper://192.168.1.9:2181
#连接到配置中心的超时时间,ms
dubbo.config-center.timeout=10000

应用启动时,会自动连接到配置中心,从配置中心获取dubbo的配置

 

dubbo.scan.base-packages 这种配置,如果觉得放在配置中心代码重构修改包位置时不方便,就放在springboot配置文件中也可以。

 

 

 


 

 

 

元数据中心

元数据中心用于存储一些服务提供者、消费者的信息,比如dubbo版本、服务接口的信息(包括方法名、形参表、返回值类型)等等。

dubbo支持2种元数据中心:zk、redis,此处以zk为例。

 

分别在消费者、提供者中加入元数据中心的依赖:

<dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo-metadata-report-zookeeper</artifactId>
    <version>2.7.6</version>
    <scope>test</scope>
</dependency>

使用redis作为元数据中心的话,把artifactId中的zookeeper换为redis即可。

版本号一般要用maven统一管理dubbo各个依赖的版本,做到dubbo的依赖都是同一版本。此处未统一管理版本。

看到作用域是test,就知道元数据中心这玩意儿是测试用的。

 

 

然后在全局配置中加上元数据中心的配置:

#元数据配置中心地址
dubbo.metadata-report.address=zookeeper://192.168.1.9:2181

一般配置个地址就可以了

 

 

重启应用来获取新的配置,看到zkServer上产生了一个新的节点 /dubbo/metadata,

metadata下面每个子节点都存储一个服务的元数据,provider、consumer分别存储该服务提供者、消费者的元数据,json格式,

数据有点乱,要看的话可以找个json格式化工具格式化一下。

 

 

元数据中心主要的功能是测试服务接口,配置元数据中心以后,可以在dubbo admin中测试服务接口。

 

posted @ 2020-04-28 13:50  chy_18883701161  阅读(8100)  评论(0编辑  收藏  举报