为了保证数据高可用,那么我们采用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、界面式维护

http://192.168.0.2/login

帐号 admin 密码admin@123

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

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

  1. Zookeeper系列四:Zookeeper实现分布式锁、Zookeeper实现配置中心

    一.Zookeeper实现分布式锁 分布式锁主要用于在分布式环境中保证数据的一致性. 包括跨进程.跨机器.跨网络导致共享资源不一致的问题. 1. 分布式锁的实现思路 说明: 这种实现会有一个缺点,即当 ...

  2. zookeeper作配置中心(存储支付信息)

    zookeeper作配置中心(存储敏感信息) 前提:最近在项目中需要用到支付接口,支付宝或者微信支付,根据官方文档,需要配置一些诸如notify-url或者app-private-key等信息,这些信 ...

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

    说明:要实现配置中心的例子,可以选择的SDK有很多,原生自带的SDK也是不错的选择.比如使用I0Itec,Spring Boot集成等. 大型应用通常会按业务拆分成一个个业务子系统,这些大大小小的子应 ...

  4. 基于Apache Zookeeper手写实现动态配置中心(纯代码实践)

    相信大家都知道,每个项目中会有一些配置信息放在一个独立的properties文件中,比如application.properties.这个文件中会放一些常量的配置,比如数据库连接信息.线程池大小.限流 ...

  5. .Net配置中心-Zookeper版

    简介    zookeeper的基本概念和作用这里不做介绍,现在很多的公司都在使用它,说起它的作用,可能最先想到的是配置中心,可以将配置项作为一个node存储在zookeeper中,其他应用可以“关注 ...

  6. zookeeper配置中心实战--solrcloud zookeeper配置中心原理及源码分析

    程序的发展,需要引入集中配置: 随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关.参数的配置.服务器的地址…… 并且对配置的期望也越来越高,配置修改后实时生效,灰度发布,分环境.分集群管理配 ...

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

    前言:马上要过年了,祝大家新年快乐!在过年回家前分享一篇关于Zookeeper的文章,我们都知道现在微服务盛行,大数据.分布式系统中经常会使用到Zookeeper,它是微服务.分布式系统中必不可少的分 ...

  8. springcloud集成zookeeper,并使用configserver作为服务的配置中心

    1.springcloud集成zookeeper: 做法: 出现问题: 版本不一致导致出现keepError: 解决:服务器的zookeeper要与客户端的zookeeper一致,才可以. 2.使用c ...

  9. Zookeeper笔记之基于zk的分布式配置中心

    一.场景 & 需求 集群上有很多个节点运行同一个任务,这个任务会有一些可能经常改变的配置参数,要求是当配置参数改变之后能够很快地同步到每个节点上,如果将这些配置参数放在本地文件中则每次都要修改 ...

随机推荐

  1. Redis面试篇 -- Redis主从复制原理

        Redis一般是用来支撑读高并发的,为了分担读压力,Redis支持主从复制.架构是主从架构,一主多从, 主负责写,并且将数据复制到其它的 slave 节点,从节点负责读. 所有的读请求全部走从 ...

  2. 从零开始入门 K8s | 可观测性:监控与日志

    作者 | 莫源  阿里巴巴技术专家 一.背景 监控和日志是大型分布式系统的重要基础设施,监控可以帮助开发者查看系统的运行状态,而日志可以协助问题的排查和诊断. 在 Kubernetes 中,监控和日志 ...

  3. node 利用命令行交互生成相应模板

    目录 readline 实现 使用process实现 使用 inquirer 调用的生成模板方法 (generator 方法) 创建时间:2019-10-15 测试环境:win10 node-v10. ...

  4. 探讨Microsoft Solution Framework(MSF)框架下管理的秘密

    hello,同学们,同胞们,同志们,同龄们,这样们,那样们,们们们,我又回来写“论文”了,半年时间没见我发布任何博文,是不是认为我被潜规则了啊,哈哈.我想死你们了.好了,废话不多说,进入今天主题:   ...

  5. jQuery v1.10.2如何判断checkbox(复选框)是否被选中

    做项目时,我们经常会用到jquery来做一些判断,今天自己遇上判断复选框是否选中,然后搜索查看,发现现在网上的都是错误的,下面罗列错误的: 1.$("#id").attr(&quo ...

  6. ‎Cocos2d-x 学习笔记(11.10) Spawn

    Spawn让多个action同时执行. Spawn有多种不同的create方法,最终都调用了createWithTwoActions(FiniteTimeAction *action1, Finite ...

  7. Jdk14 都要出了,Jdk8 的时间处理姿势还不了解一下?

    当前时间:2019年10月24日.距离 JDK 14 发布时间(2020年3月17日)还有多少天? // 距离JDK 14 发布还有多少天? LocalDate jdk14 = LocalDate.o ...

  8. git clone下代码window与unix换行问题

    项目中避免不了会写一些shell脚本,使用ln软连接到一个目录.当git clone到windows中,ln连接显示无比怪异(如../xx),打开.sh文件后(仅仅是打开了),git status会看 ...

  9. 二叉树的查找(前序、中序、后序、层序遍历)--biaobiao88

    建立一棵含有n个结点的二叉树,采用二叉链表存储: 输出前序.中序.后序..层序遍历该二叉树的遍历结果. 定义二叉树的数据类型——二叉树结点结构体BiNode.建立二叉链表可以采用扩展二叉树的一个遍历序 ...

  10. 最近学到的ABTest知识

    前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 如果之前看过我文章的同学就知道我在工作中搞的是推送系 ...