Zookeeper作为配置中心使用说明
为了保证数据高可用,那么我们采用zookeeper作为配置中心来保存数据。springcloud对zookeeper的集成官方也有说明:spring_cloud_zookeeper
这里通过实践的方式讲解下使用方式。
1、添加依赖包
<!-- 运维监控 --> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-actuator</artifactid> </dependency> <!-- web 应用程序--> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-web</artifactid> </dependency> <!-- 提供zookeeper - config --> <dependency> <groupid>org.springframework.cloud</groupid> <artifactid>spring-cloud-starter-zookeeper-config</artifactid> </dependency>
配置说明:
org.springframework.cloud#spring-cloud-starter-zookeeper-config
是zookeeper作为配置中心的配置项目。若是web工程需要添加
org.springframework.boot#spring-boot-starter-web
。配置项目
org.springframework.boot#spring-boot-starter-actuator
是用来与zookeeper通信使用的
2、添加配置文件
在bootstrap.properties文件下添加 以下配置
spring.application.name=config-demo spring.profiles.active=dev #zookeeper的连接字符串,如果是集群,逗号分隔节点,格式:ip:port[,ip2:port2,.....] spring.cloud.zookeeper.connect-string = 192.168.0.1:2181 #指定zookeeper目录的根目录 spring.cloud.zookeeper.config.root = config #启用zk的配置 spring.cloud.zookeeper.config.enabled = true spring.cloud.zookeeper.config.profileseparator = :
配置说明:
请修改
192.168.0.1:2181
为项目中的zookeeper地址,默认是localhost:2181根据以上配置,读取zookeeper中的地址为: /config/config-demo:dev
登录zookeeper需要手动创建,或使用zkui来界面维护
3、在zookeeper中手动创建配置
示例:
[zk: localhost:2181(connected) 3] create /config/config-demo:dev created /config/config-demo:dev [zk: localhost:2181(connected) 4] create /config/config-demo:dev/user.name yuesf created /config/config-demo:dev/user.name
4、程序中使用
1)创建配置文件
示例: userproperties.java
package com.example.config; import org.springframework.boot.context.properties.configurationproperties; /* * @auth yuesf * @data 2019/10/29 */ @configurationproperties(prefix = "user") public class userproperties { private string name; public string getname() { return name; } public void setname(string name) { this.name = name; } }
配置说明:
使用@configurationproperties 特性,标记类为配置文件
2)激活自动装配
在启动类激活配置文件
package com.example.config; import com.example.config.demo.userproperties; import org.springframework.boot.springapplication; import org.springframework.boot.autoconfigure.springbootapplication; import org.springframework.boot.context.properties.enableconfigurationproperties; /* * @auth yuesf * @data 2019/11/12 */ @enableconfigurationproperties(value = {userproperties.class }) @springbootapplication public class configapplication { public static void main(string[] args) { springapplication.run(configapplication.class,args); } }
配置说明:
上例代码中
@enableconfigurationproperties(userproperties.class)
是把userproperties.class 激活配置
3)程序调用配置
示例:调用配置中心的user.name 变量
package com.example.config.controller; import com.example.config.demo.userproperties; import org.springframework.beans.factory.annotation.autowired; import org.springframework.web.bind.annotation.getmapping; import org.springframework.web.bind.annotation.restcontroller; /* * @auth yuesf * @data 2019/11/12 */ @restcontroller public class usercontroller { @autowired private userproperties userproperties; @getmapping("/user") public string getuser(){ return userproperties.getname(); } }
5、界面式维护
界面采用的zkui的部署,针对zkui的说明请移步zkui :https://github.com/deemopen/zkui
还有本地zk可视化界面 zooviewer,针对zooviewer的使用说明请移步: https://github.com/hellokittynii/zooviewer
本文由博客一文多发平台 openwrite 发布!
再次感谢!!! 您已看完全文,欢迎关注微信公众号猿码
,你的支持是我持续更新文章的动力!
下一篇: C# Random