欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Dubbo 配置中心、元数据中心

程序员文章站 2022-10-04 09:25:44
配置中心 每个服务的配置都写在自己的配置文件中,更新配置时要一台机器一台机器地修改,很不方便, dubbo一般使用zk作为配置管理中心,统一管理dubbo的配置。 dubbo admin -> 配置管理 -> 创建 全局配置的名称使用global,对所有的服务提供者、消费者均有效,写一些公共配置,比 ......

 

配置中心

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

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

 

 

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中测试服务接口。