• 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 发布!

    再次感谢!!! 您已看完全文,欢迎关注微信公众号猿码 ,你的支持是我持续更新文章的动力!

  • 相关阅读:
    MYSQL数据库基于MHA的高可用
    2019.9.20 Tomcat部署SL商城系统并连接MariaDB数据库
    2019.9.20 nginx+tomcat的负载均衡集群
    2019.9.20 tomcat自定义网站测试
    2019.9.20 Tomcat 安装和jdk的解压
    2019.9.19 tomcat 虚拟主机
    2019.9.19 tomcat配置ssl加密
    2019.9.18 nfs共享与动静分离
    2019.9.17 用户访问网站过程
    2019.9.17 awk上课总结
  • 原文地址:https://www.cnblogs.com/yuesf/p/11840123.html
Copyright © 2020-2023  润新知