Zookeeper作为配置中心使用说明


Zookeeper作为配置中心使用说明

文章插图
 
为了保证数据高可用,那么我们采用Zookeeper作为配置中心来保存数据 。SpringCloud对Zookeeper的集成官方也有说明:https://cloud.spring.io/spring-cloud-static/Greenwich.SR3/single/spring-cloud.html#_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-demospring.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 = truespring.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:devCreated /config/config-demo:dev[zk: localhost:2181(CONNECTED) 4] create /config/config-demo:dev/user.name yuesfCreated /config/config-demo:dev/user.name4、程序中使用
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 = https://www.isolves.com/it/cxkf/jiagou/2019-11-12/{UserProperties.class })@SpringBootApplicationpublic 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 */@RestControllerpublic class UserController { @Autowired private UserProperties userProperties; @GetMapping("/user") public String getUser(){ return userProperties.getName(); }}【Zookeeper作为配置中心使用说明】5、界面式维护
界面采用的zkui的部署,针对zkui的说明请移步zkui :https://github.com/DeemOpen/zkui还有本地zk可视化界面 ZooViewer,针对ZooViewer的使用说明请移步: https://github.com/HelloKittyNII/ZooViewer
本文由博客一文多发平台 https://openwrite.cn?from=article_bottom 发布!




    推荐阅读