本文介紹了springcloud +zookeeper完成配置中心,分享給大家,具有如下:
使用場景
- 項目配置更改不需要打包,重啟
- 提供配置文件的可視化界面
- 和springcloud快速整合
為什么使用zookeeper
zookeeper 作為一個分布式的服務框架,主要用來解決分布式集群中應用系統的一致性問題,它能提供基于類似于文件系統的目錄節點樹方式的數據存儲, zookeeper 作用主要是用來維護和監控存儲的數據的狀態變化,通過監控這些數據狀態的變化,從而達到基于數據的集群管理。
怎么使用
1.pom文件
1
2
3
4
5
6
7
8
9
10
|
<!-- 提供zookeeper整合的包 --> <dependency> <groupid>org.springframework.cloud</groupid> <artifactid>spring-cloud-starter-zookeeper-config</artifactid> </dependency> <!-- springboot 提供監聽的 --> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-actuator</artifactid> </dependency> |
2.bootstrap.properties文件
提示: springboot項目啟動會優先讀取 bootstrap.properties.然后獲取zookeeper中的配置內容,才啟動其他配置
1
2
3
4
5
6
7
8
|
#指定zookeeper的地址,多個用逗號拼接 spring.cloud.zookeeper.connect-string= 192.168 . 100.0 : 2181 #指定springcloud 讀取zookeeper路徑的開始位置 spring.cloud.zookeeper.config.root=springcloud #開始zk的配置 spring.cloud.zookeeper.config.enabled= true #zk會在你指定的根目錄下尋找以這個項目名命名的目錄下的配置 spring.application.name=service_config |
3.獲取zookeeper中的配置
1.@value方式:
1
2
3
|
//不能動態更新值,需要重啟項目 @value ( "${com.xxx.username}" ) public string username ; |
2.@configurationproperties和@enableconfigurationproperties方式
1
2
3
4
5
6
7
8
9
10
11
|
//可以動態修改值,不需要重啟 @configurationproperties (prefix = "com.xxx" ) public class userinfo { public string username ; public string getusername() { return username; } public void setusername(string username) { this .username = username; } } |
application代碼:
1
2
3
4
5
6
7
8
9
|
@springbootapplication //支持多個配置類 @enableconfigurationproperties ({xxx. class ,abc. class }) public class serviceconfigapplication { public static void main(string[] args) { springapplication.run(serviceconfigapplication. class , args); } } |
4.獲取配置的規則
假設:
1
2
3
|
spring.cloud.zookeeper.config.root=xxxx ; spring.application.name=abc |
zk 路徑:
/xxxx/abc/com/gabo/username
取值:
1
|
@value (${com.gabo.username}) |
5. 檢驗:
啟動的時候輸出: state change: connected
代表連接zookeeper成功
修改配置中心內容,輸出:refresh keys changed:
代表項目中的值修改成功
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:https://blog.csdn.net/qq_27336239/article/details/78848088