閱讀463 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Spring Cloud Zookeeper 中心化配置文件

為什麼要使用zookeeper來管理項目配置?

每當我們的項目需要更改配置文件的時候,我們都會重新打包並重新部署項目。如果一個項目還好說,如果是分布式的服務,那麼我們需要停掉左右機器上的服務,上傳新的包,然後重啟。如果是10台,如果是100台如果是1000台.......
基於zookeeper配置中心,我們隻需要更改zk中相應項目的配置,直接重啟服務就可以了,省去了衝洗打包,上傳,部署等大量操作。且配置中心化易於管理。

準備工作

基於SpringBoot
基於SpringCloud
基於zooKeeper 集群服務

假設你是基於SpringBoot開發,因為Spring對zk的集成整合在了SpringCloud的子項目中,所以我們需要引入SpringCloud,點擊鏈接參考官方文檔配置你的pom.xml文件,我使用的是目前Dalston SR2這個release。

然後在pom.xml的依賴中引入如下依賴:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zookeeper-config</artifactId>
</dependency>
<!-- zookeeper 依賴的健康檢查的jar,所以需要引入actuator這個依賴 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

Spring官網對zookeeper這個子項目有個說明,就是項目的配置文件不可以叫application*,需要改成bootstrap*開頭,否則沒辦法正常讀取配置。例如原先叫application.yaml / application.properties,現在改成bootstrap.yaml / bootstrap.properties。

配置ZooKeeper

#ZooKeeper的連接字符串,如果是集群,逗號分隔節點,格式:ip:port[,ip2:port2,.....]
spring.cloud.zookeeper.connect-string = ${ZOOKEEPER_CONNECT_STRING}
#指定zookeeper目錄的根目錄
spring.cloud.zookeeper.config.root = <ZK_directory>
#啟用zk的配置
spring.cloud.zookeeper.config.enabled =  <true | false>
 #定義了你的項目的名稱,zk會在你指定的
根目錄下尋找以這個項目名命名的目錄下的配置
spring.application.name = <Define Name>

關於如何在zookeeper下創建目錄,並填寫配置,請參考其他資料。

舉例說明

spring.cloud.zookeeper.config.enabled = true

在你指定zookeeper下的根目錄,zk會在這個根目錄下尋找跟你項目名稱相同的文件夾,然後找到其下麵的所有配置。
例如指定的根目錄root(即/root),項目名稱叫project,(即/root/project),上麵的配置對應就是 /root/project/spring/cloud/zookeeper/config/enabled這個key,enabled的值是true

啟動項目即可

最後更新:2017-08-13 22:36:46

  上一篇:go  賽思互動:淺析CRM Online與CRM本地部署的區別
  下一篇:go  網站優化要注重細節不能抱以僥幸心理哦