您当前的位置:首页 > 电脑百科 > 程序开发 > 架构

Zookeeper作为配置中心使用说明

时间:2019-11-12 16:06:37  来源:  作者:

Zookeeper作为配置中心使用说明

 

为了保证数据高可用,那么我们采用Zookeeper作为配置中心来保存数据。SpringCloud对Zookeeper的集成官方也有说明:https://cloud.spring.io/spring-cloud-static/Greenwich.SR3/single/spring-cloud.html#_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

本文由博客一文多发平台 https://openwrite.cn?from=article_bottom 发布!



Tags:Zookeeper   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
一、准备三台机器这里我使用VirtualBox创建3个虚拟机来进行部署zk集群,VirtualBox不了解的可自行百度; 二、部署linux系统此处不讲解linux部署,很简单,百度一下很多教程的部署...【详细内容】
2021-12-08  Tags: Zookeeper  点击:(17)  评论:(0)  加入收藏
zookeeper动物管理员,是一个很形象的名字,是一个分布式协调服务。它可以用来做分布式配置管理,服务注册及发现,分布式锁。在CAP中,属于CP型。下图是zookeeper的架构图: 图中,绿色的...【详细内容】
2021-11-16  Tags: Zookeeper  点击:(38)  评论:(0)  加入收藏
环境:Spring Boot 2.3.9 + Spring Cloud Hoxton.SR8服务发现注册请参考《SpringCloud Zookeeper服务发现及负载均衡 》zookeeper安装配置请参考《Kafka(zookeeper)环境配置超级...【详细内容】
2021-04-06  Tags: Zookeeper  点击:(276)  评论:(0)  加入收藏
ZK(zookeeper)是微服务解决方案中拥有服务注册发现最为核心的环境,是微服务的基石。作为服务注册发现模块,并不是只有ZK一种产品,目前得到行业认可的还有:Eureka、Consul。这里我...【详细内容】
2021-03-04  Tags: Zookeeper  点击:(179)  评论:(0)  加入收藏
前三篇讲了Zookeeper的特性、客户端使用和集群原理、典型使用场景实践,本篇重点深入了解ZAB协议以及源码实现的解析。...【详细内容】
2020-10-08  Tags: Zookeeper  点击:(85)  评论:(0)  加入收藏
某天程序员小白参加面试:几番苦战之后,面试进入白热化阶段。面试官大开大合,小白见招拆招。一时之间,难解难分,两人对拆数十回合不分胜负。说时迟,那时快,小白的左手像火焰一般炙热...【详细内容】
2020-08-18  Tags: Zookeeper  点击:(112)  评论:(0)  加入收藏
一、zk是什么:1、个人理解zk=文件系统+通知机制。2、zk是一个分布式的应用程序协调服务,我理解的就是有两台集器A、B,A对一个数据进行了操作,B是如何知道的,这个就需要zk的支持。...【详细内容】
2020-08-11  Tags: Zookeeper  点击:(58)  评论:(0)  加入收藏
典型应用场景Apache HBaseHBase是一个通常与Hadoop一起使用的数据存储仓库。在HBase中,ZooKeeper用于选举一个集群内的主节点,以便跟踪可用的服务器,并保存集群的元数据。Apach...【详细内容】
2020-07-29  Tags: Zookeeper  点击:(45)  评论:(0)  加入收藏
如上图所示,kafaka集群的 broker,和 Consumer 都需要连接 Zookeeper。 Producer 直接连接 Broker。Producer 把数据上传到 Broker,Producer可以指定数据有几个分区、几个备份...【详细内容】
2020-06-15  Tags: Zookeeper  点击:(125)  评论:(0)  加入收藏
本文主要分享一下zookeeper的一些基本概念,在正式进入正题前,和大家聊一聊刚入行时我的面试经验,可以说是耿直的有些可爱。面试官:用过zookeeper 吗?我:用过啊,给dubbo提供服务的...【详细内容】
2020-04-01  Tags: Zookeeper  点击:(141)  评论:(0)  加入收藏
▌简易百科推荐
为了构建高并发、高可用的系统架构,压测、容量预估必不可少,在发现系统瓶颈后,需要有针对性地扩容、优化。结合楼主的经验和知识,本文做一个简单的总结,欢迎探讨。1、QPS保障目标...【详细内容】
2021-12-27  大数据架构师    Tags:架构   点击:(5)  评论:(0)  加入收藏
前言 单片机开发中,我们往往首先接触裸机系统,然后到RTOS,那么它们的软件架构是什么?这是我们开发人员必须认真考虑的问题。在实际项目中,首先选择软件架构是非常重要的,接下来我...【详细内容】
2021-12-23  正点原子原子哥    Tags:架构   点击:(7)  评论:(0)  加入收藏
现有数据架构难以支撑现代化应用的实现。 随着云计算产业的快速崛起,带动着各行各业开始自己的基于云的业务创新和信息架构现代化,云计算的可靠性、灵活性、按需计费的高性价...【详细内容】
2021-12-22    CSDN  Tags:数据架构   点击:(10)  评论:(0)  加入收藏
▶ 企业级项目结构封装释义 如果你刚毕业,作为Java新手程序员进入一家企业,拿到代码之后,你有什么感觉呢?如果你没有听过多模块、分布式这类的概念,那么多半会傻眼。为什么一个项...【详细内容】
2021-12-20  蜗牛学苑    Tags:微服务   点击:(9)  评论:(0)  加入收藏
我是一名程序员关注我们吧,我们会多多分享技术和资源。进来的朋友,可以多了解下青锋的产品,已开源多个产品的架构版本。Thymeleaf版(开源)1、采用技术: springboot、layui、Thymel...【详细内容】
2021-12-14  青锋爱编程    Tags:后台架构   点击:(21)  评论:(0)  加入收藏
在了解连接池之前,我们需要对长、短链接建立初步认识。我们都知道,网络通信大部分都是基于TCP/IP协议,数据传输之前,双方通过“三次握手”建立连接,当数据传输完成之后,又通过“四次挥手”释放连接,以下是“三次握手”与“四...【详细内容】
2021-12-14  架构即人生    Tags:连接池   点击:(17)  评论:(0)  加入收藏
随着移动互联网技术的快速发展,在新业务、新领域、新场景的驱动下,基于传统大型机的服务部署方式,不仅难以适应快速增长的业务需求,而且持续耗费高昂的成本,从而使得各大生产厂商...【详细内容】
2021-12-08  架构驿站    Tags:分布式系统   点击:(23)  评论:(0)  加入收藏
本系列为 Netty 学习笔记,本篇介绍总结Java NIO 网络编程。Netty 作为一个异步的、事件驱动的网络应用程序框架,也是基于NIO的客户、服务器端的编程框架。其对 Java NIO 底层...【详细内容】
2021-12-07  大数据架构师    Tags:Netty   点击:(17)  评论:(0)  加入收藏
前面谈过很多关于数字化转型,云原生,微服务方面的文章。虽然自己一直做大集团的SOA集成平台咨询规划和建设项目,但是当前传统企业数字化转型,国产化和自主可控,云原生,微服务是不...【详细内容】
2021-12-06  人月聊IT    Tags:架构   点击:(23)  评论:(0)  加入收藏
微服务看似是完美的解决方案。从理论上来说,微服务提高了开发速度,而且还可以单独扩展应用的某个部分。但实际上,微服务带有一定的隐形成本。我认为,没有亲自动手构建微服务的经历,就无法真正了解其复杂性。...【详细内容】
2021-11-26  GreekDataGuy  CSDN  Tags:单体应用   点击:(35)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条