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、界面式维护
http://192.168.0.2/login
帐号 admin 密码admin@123
再次感谢!!! 您已看完全文,欢迎关注微信公众号猿码 ,你的支持是我持续更新文章的动力!
Zookeeper作为配置中心使用说明的更多相关文章
- Zookeeper系列四:Zookeeper实现分布式锁、Zookeeper实现配置中心
一.Zookeeper实现分布式锁 分布式锁主要用于在分布式环境中保证数据的一致性. 包括跨进程.跨机器.跨网络导致共享资源不一致的问题. 1. 分布式锁的实现思路 说明: 这种实现会有一个缺点,即当 ...
- zookeeper作配置中心(存储支付信息)
zookeeper作配置中心(存储敏感信息) 前提:最近在项目中需要用到支付接口,支付宝或者微信支付,根据官方文档,需要配置一些诸如notify-url或者app-private-key等信息,这些信 ...
- ZooKeeper实现配置中心的实例(原生API实现)(转)
说明:要实现配置中心的例子,可以选择的SDK有很多,原生自带的SDK也是不错的选择.比如使用I0Itec,Spring Boot集成等. 大型应用通常会按业务拆分成一个个业务子系统,这些大大小小的子应 ...
- 基于Apache Zookeeper手写实现动态配置中心(纯代码实践)
相信大家都知道,每个项目中会有一些配置信息放在一个独立的properties文件中,比如application.properties.这个文件中会放一些常量的配置,比如数据库连接信息.线程池大小.限流 ...
- .Net配置中心-Zookeper版
简介 zookeeper的基本概念和作用这里不做介绍,现在很多的公司都在使用它,说起它的作用,可能最先想到的是配置中心,可以将配置项作为一个node存储在zookeeper中,其他应用可以“关注 ...
- zookeeper配置中心实战--solrcloud zookeeper配置中心原理及源码分析
程序的发展,需要引入集中配置: 随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关.参数的配置.服务器的地址…… 并且对配置的期望也越来越高,配置修改后实时生效,灰度发布,分环境.分集群管理配 ...
- ASP.Net Core 中使用Zookeeper搭建分布式环境中的配置中心系列一:使用Zookeeper.Net组件演示基本的操作
前言:马上要过年了,祝大家新年快乐!在过年回家前分享一篇关于Zookeeper的文章,我们都知道现在微服务盛行,大数据.分布式系统中经常会使用到Zookeeper,它是微服务.分布式系统中必不可少的分 ...
- springcloud集成zookeeper,并使用configserver作为服务的配置中心
1.springcloud集成zookeeper: 做法: 出现问题: 版本不一致导致出现keepError: 解决:服务器的zookeeper要与客户端的zookeeper一致,才可以. 2.使用c ...
- Zookeeper笔记之基于zk的分布式配置中心
一.场景 & 需求 集群上有很多个节点运行同一个任务,这个任务会有一些可能经常改变的配置参数,要求是当配置参数改变之后能够很快地同步到每个节点上,如果将这些配置参数放在本地文件中则每次都要修改 ...
随机推荐
- Elasticsearch 7.x 之文档、索引和 REST API 【基础入门篇】
前几天写过一篇<Elasticsearch 7.x 最详细安装及配置>,今天继续最新版基础入门内容.这一篇简单总结了 Elasticsearch 7.x 之文档.索引和 REST API. ...
- MacOS 安装MysqlDB 问题解决方案( 解决 IndexError: string index out of range)
pip install MySQL-python时报错如下: Command "python setup.py egg_info" failed with error code 1 ...
- django自带cache结合redis创建永久缓存
0916自我总结 django自带cache结合redis创建永久缓存 1.redis库 1.安装redis与可视化操作工具 1.安装redis https://www.runoob.com/redi ...
- java普通项目打包成可执行jar文件时如何添加第三包
在java的web项目中,引用第三方包的时候非常简单.因为在web项目上中,默认有一个web-inf文件夹.web-inf文件夹下有一个lib文件夹,如果有用到第三方包,直接丢进去就行了.但是对于普通 ...
- 为什么要学3D建模呢?你看中的肯定是这几点
游戏行业的大环境 互联网的形态一直以来都是2D模式的,但是随着3D技术的不断进步,在未来的5年时间里,将会有越来越多的互联网应用以3D的方式呈现给用户,包括网络视讯.电子阅读.虚拟社区.网络游戏.电子 ...
- Ubuntu8.04::扩容(LVM)磁盘
.扩容 sudo lvextend -l +%FREE /dev/mapper/ubuntu--vg-ubuntu--lv .重新计算磁盘大小 sudo resize2fs /dev/mapper/u ...
- 浅谈线段树 Segment Tree
众所周知,线段树是algo中很重要的一项! 一.简介 线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点. 使用线段树可以快速的查找某一个节点在 ...
- 说说hashCode() 和 equals() 之间的关系?
上一篇关于介绍Object类下的几种方法时面试题时,提到equals()和hashCode()方法可能引出关于“hashCode() 和 equals() 之间的关系?”的面试题,本篇来解析一下这道基 ...
- 09 python学习笔记-操作excel(九)
python操作excel使用xlrd.xlwt和xlutils模块,xlrd模块是读取excel的,xlwt模块是写excel的,xlutils是用来修改excel的.这几个模块可以使用pip安装, ...
- 一文读懂Java类加载机制
Java 类加载机制 Java 类加载机制详解. @pdai Java 类加载机制 类的生命周期 类的加载:查找并加载类的二进制数据 连接 验证:确保被加载的类的正确性 准备:为类的静态变量分配内存, ...