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

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

原文地址:https://www.cnblogs.com/yuesf/p/11840123.html

时间: 2024-10-17 21:31:51

Zookeeper作为配置中心使用说明的相关文章

Zookeeper(3)-使用ZooKeeper作为配置中心

ZooKeeper作为配置中心现在我们大多数应用都是采用的是分布式开发的应用,搭建到不同的服务器上,我们的配置文件,同一个应用程序的配置文件一样,还有就是多个程序存在相同的配置.当我们配置文件中有个配置属性需要改变,我们需要改变每个程序的配置属性,这样会很麻烦的去修改配置.而现在可以使用SpringCloud提供的配置中心,或者使用zookeeper来实现配置中心. 如何使用Zookeeper作为配置中心?我们可以清除的了解ZooKeeper的Znode节点提供了一个Watcher,我们可以通过

ZooKeeper实现配置中心的实例(原生API实现)(转)

说明:要实现配置中心的例子,可以选择的SDK有很多,原生自带的SDK也是不错的选择.比如使用I0Itec,Spring Boot集成等. 大型应用通常会按业务拆分成一个个业务子系统,这些大大小小的子应用,往往会使用一些公用的资源,比如:需要文件上传.下载时,各子应用都会访问公用的Ftp服务器.如果把Ftp Server的连接IP.端口号.用户名.密码等信息,配置在各子应用中,然后这些子应用再部署到服务器集群中的N台Server上,突然有一天,Ftp服务器要换IP或端口号,那么问题来了?),而是如

基于Zookeeper实现配置中心

在Zookeeper的主要应用场景中,其中之一是作为分布式系统的配置中心. 实现原理在Zookeeper建立一个根节点,比如/CONFIG,代表某个配置文件.将配置文件中的信息作为根节点的子节点存储,比如配置项timeout=3000,在Zookeeper中展现为:/CONFIG/timeout ,节点内容是3000.然后让所有使用到该配置信息的应用机器集成Zookeeper并监控/CONFIG的状态,一旦配置信息也就是子节点发生变化,每台应用机器就会收到ZK的通知,然后从ZK中获取新的配置信息

zookeeper(5)配置中心

案例 使用Zookeeper作为配置中心,实现配置的修改和自动下发,基于Spriing Cloud我们可以轻松的实现. 添加依赖 pom.xml的关键信息如下 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zookeeper-config</artifactId> </dependency> 启动配置

.Net配置中心-Zookeper版

简介 zookeeper的基本概念和作用这里不做介绍,现在很多的公司都在使用它,说起它的作用,可能最先想到的是配置中心,可以将配置项作为一个node存储在zookeeper中,其他应用可以“关注”这个节点,当配置的值发生变化的时候,其他应用可以很快的被通知到. 这里有一个细节,就是通知的次数,我在初次认识zookeeper的时候,以为“关注”了某个节点后,之后这个节点的值发生变化都可以通知到,但是实际情况是客户端在“关注”了某个节点后,这个节点的首次变化会被通知到,之后的变化都不会再通知,如果想

用Zookeeper作为Spring cloud的配置中心(转)

本文转自https://blog.csdn.net/CSDN_Stephen/article/details/78856323 Spring Cloud 配置中心的主流实现方式 Spring cloud configSpring cloud zookeeper config以下是这两者的简介 Srping Cloud Config Spring cloud config就是和git(svn)集成来实现配置中心.Spring cloud config分服务端.客户端和git(svn)三部分,服务端

ASP.Net Core 中使用Zookeeper搭建分布式环境中的配置中心系列一:使用Zookeeper.Net组件演示基本的操作

前言:马上要过年了,祝大家新年快乐!在过年回家前分享一篇关于Zookeeper的文章,我们都知道现在微服务盛行,大数据.分布式系统中经常会使用到Zookeeper,它是微服务.分布式系统中必不可少的分布式协调框架.它的作用体现在分布式系统中解决了配置中心的问题,以及解决了在分布式环境中不同进程之间争夺资源的问题,也就是分布式锁的功能以及分布式消息队列功能等等.所以在微服务的环境中Zookeeper是现在很多公司首选的分布式协调框架,包括我之前的公司也在使用Zookeeper.说了这么多,没别的就

基于zookeeper的分布式配置中心(一)

最近在学习zookeeper,发现zk真的是一个优秀的中间件.在分布式环境下,可以高效解决数据管理问题.在学习的过程中,要深入zk的工作原理,并根据其特性做一些简单的分布式环境下数据管理工具.本文首先对zk的工作原理和相关概念做一下介绍,然后带大家做一个简单的分布式配置中心. zookeeper介绍 zookeeper是一个分布式协调框架,主要是解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务.状态同步服务.集群管理.分布式应用配置项的管理.分布式锁等. zookeeper使用 查看

基于ZK构建统一配置中心的方案和实践

背景: 近期使用Zk实现了一个简单的配置管理的小东西,在此开源出来,有兴趣的希望提出您的宝贵意见.如果恰巧您也使用或者接触过类似的东西, 也希望您可以分享下您觉得现在这个项目可以优化和改进的地方. 项目地址: https://github.com/cncduLee/zk-ucc 需求: 1.不需要重启应用.修改代码就可以对业务做开关操作 2.避免不必要的重复拉取配置信息,降低网络IO,节省服务器资源. 例如1:开发一个评论系统,违禁词这个东西,应该是可配置的,同时又是变动极少的.如何设计这个违禁