配置中心
每個服務的配置都寫在自己的配置文件中,更新配置時要一台機器一台機器地修改,很不方便,
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中測試服務接口。