欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Zookeeper作为配置中心使用说明

程序员文章站 2022-06-13 08:29:20
为了保证数据高可用,那么我们采用Zookeeper作为配置中心来保存数据。SpringCloud对Zookeeper的集成官方也有说明: "spring_cloud_zookeeper " 这里通过实践的方式讲解下使用方式。 1、添加依赖包 配置说明: 是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 发布!

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