Zookeeper如何实现分布式服务配置中心详解
1 Linux安装并启动Zookeeper
1.1 安装
下载链接:https://archive.apache.org/dist/zookeeper/
1.1.1 安装
[root@iZ1608aqb7ntn9Z tmp]# ls apache-zookeeper-3.5.7-bin.tar.gz hsperfdata_root [root@iZ1608aqb7ntn9Z tmp]# tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz apache-zookeeper-3.5.7-bin/docs/ apache-zookeeper-3.5.7-bin/docs/skin/ apache-zookeeper-3.5.7-bin/docs/images/ ...... [root@iZ1608aqb7ntn9Z tmp]# mv apache-zookeeper-3.5.7-bin /usr/local/zookeeper [root@iZ1608aqb7ntn9Z tmp]# cd /usr/local/zookeeper [root@iZ1608aqb7ntn9Z zookeeper]# cd conf/ [root@iZ1608aqb7ntn9Z conf]# ls configuration.xsl log4j.properties zoo_sample.cfg [root@iZ1608aqb7ntn9Z conf]# cp zoo_sample.cfg zoo.cfg [root@iZ1608aqb7ntn9Z conf]# ls configuration.xsl log4j.properties zoo.cfg zoo_sample.cfg [root@iZ1608aqb7ntn9Z conf]# vim zoo.cfg # 修改zoo.cfg配置文件 内容为: tickTime=2000 initLimit=10 syncLimit=5 dataDir=/usr/local/zookeeper/data clientPort=2181 # 保存退出 [root@iZ1608aqb7ntn9Z conf]# cd .. [root@iZ1608aqb7ntn9Z zookeeper]# mkdir data [root@iZ1608aqb7ntn9Z zookeeper]# ls bin conf data docs lib LICENSE.txt NOTICE.txt README.md README_packaging.txt
1.2 启动
[root@iZ1608aqb7ntn9Z zookeeper]# cd bin/ [root@iZ1608aqb7ntn9Z bin]# ./zkServer start ...... [root@iZ1608aqb7ntn9Z bin]# ./zkServer.sh status ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Client port found: 2181. Client address: localhost. Client SSL: false. Error contacting service. It is probably not running.
在上边我们发现了启动错误,查看日志,发现8080端口被占用,通过查阅Zookeeper3.5的官方文档,发现这是Zookeeper3.5的新特性:
所以我们需要再次修改配置文件,修改启动端口:
在配置文件中加入admin.serverPort=8888
然后再次启动,查看状态:
[root@iZ1608aqb7ntn9Z bin]# ./zkServer.sh status ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper3.5.7/bin/../conf/zoo.cfg Client port found: 2181. Client address: localhost. Mode: standalone
发现启动成功,接下来我们用客户端链接:
[root@iZ1608aqb7ntn9Z bin]# ./zkCli.sh Connecting to localhost:2181 ...... WatchedEvent state:SyncConnected type:None path:null [zk: localhost:2181(CONNECTING) 0] ls / [zookeeper]
1.3 阿里云安全组放开2181端口
(略)
2 zookeeper配置
[zk: localhost:2181(CONNECTING) 0] ls / [zookeeper] [zk: localhost:2181(CONNECTED) 4] create /config Created /config [zk: localhost:2181(CONNECTED) 6] create /config/hello # config后的名称要与spring.name的名称对应 Created /config/hello [zk: localhost:2181(CONNECTED) 7] create /config/hello/student.name zs Created /config/hello/student.name [zk: localhost:2181(CONNECTED) 8] get /config/hello/student.name zs
3 Spring Boot配置
3.1 依赖
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId> <version>2.1.4.RELEASE</version> <type>pom</type> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zookeeper-config</artifactId> <version>2.1.4.RELEASE</version> <type>pom</type> <scope>runtime</scope> </dependency> </dependencies>
注意:一定要注意Spring Boot和Spring Cloud的版本对应!
3.2 配置文件
application.yml
server: port: 0 # 表示随机端口 student: name: 1
bootstrap.yml
spring: cloud: zookeeper: connect-string: 8.131.57.161:2181 # zk服务端地址 enabled: true # 启动远程配置 application: name: hello
3.3 项目代码
/** * @desc: 控制器 * @author: YanMingXin * @create: 2021/8/20-16:31 **/ @RestController public class HelloController { @Value("${student.name}") private String name; @RequestMapping("/hello") public String getName() { return name; } }
3.4 启动测试
下面我们来修改下远程配置,看下是不是真的使用了zookeeper的配置文件:
[zk: localhost:2181(CONNECTED) 9] delete /config/hello/student.name [zk: localhost:2181(CONNECTED) 10] get /config/hello/student.name org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /config/hello/student.name [zk: localhost:2181(CONNECTED) 11] create /config/hello/student.name ls Created /config/hello/student.name [zk: localhost:2181(CONNECTED) 12] get /config/hello/student.name ls
重新启动项目:
总结
到此这篇关于Zookeeper如何实现分布式服务配置中心的文章就介绍到这了,更多相关Zookeeper分布式服务配置中心内容请搜索猪先飞以前的文章或继续浏览下面的相关文章希望大家以后多多支持猪先飞!
原文出处:https://blog.csdn.net/Mr_YanMingXin/article/details/11984865
相关文章
IntelliJ IDEA2021.1 配置大全(超详细教程)
这篇文章主要介绍了IntelliJ IDEA2021.1 配置大全(超详细教程),需要的朋友可以参考下...2021-04-18- VPN可以虚拟出一个专用网络,让远处的计算机和你相当于处在同一个局域网中,而中间的数据也可以实现加密传输,用处很大,特别是在一些大公司,分公司处在不同的区域。...2016-01-27
- 这篇文章主要介绍了Tomcat配置及如何在Eclipse中启动,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-04
- 如果我们需要安培Laravel4的话最php最低要求要在php5.3.7版本并且我们需要把mcrypt与openss这两个扩展开启才可以,具体步骤我们参考下文。 前面我们介绍我了 com...2016-11-25
详解Maven profile配置管理及激活profile的几种方式
这篇文章主要介绍了详解Maven profile配置管理及激活profile的几种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-26- 这篇文章主要介绍了IDEA如何添加配置文件到classpath中,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-09-19
- 通常php.ini的位置在:复制代码 代码如下:/etc目录下或/usr/local/lib目录下。如果你还是找不到php.ini或者找到了php.ini修改后不生效(其实是没找对),请使用如下办法:1.新建php文件,写入如下代码复制代码 代码如下:<?phpe...2014-05-31
- 以下就是部署PHP时的4个配置修改说明,大家一个一个进行学习研究。1、short_open_tag 是什么呢? 决定是否允许使用代码开始标志的缩写形式(<? ?> )。如果要和 XML 结合使用PHP,可以禁用此选项以便于嵌入使用<?x...2015-10-21
- 在使用vue-router的项目中,实例化VueRouter是其配置选项routes该选项指定路由与视图的组件的关系或者路由与其他路由的关系,Router配置选项中是其中最重要的配置。本文就详细的介绍一下...2021-10-25
华为畅享20Pro配置怎么样?华为畅享20Pro参数配置分析
华为畅享20Pro配置怎么样?对于即将上市的华为畅享20 Pro手机,很多的网友们也是相当关注的,大家都想要知道这款华为畅享20 Pro手机的配置到底怎么样,赶紧看看吧...2020-06-29详解element-ui 表单校验 Rules 配置 常用黑科技
这篇文章主要介绍了element-ui 表单校验 Rules 配置 常用黑科技,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11tomcat9 下载安装和配置+整合到eclipse的教程详解
这篇文章主要介绍了tomcat9 下载安装和配置+整合到eclipse,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-28- 这篇文章主要介绍了pytest配置文件pytest.ini的详细使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-04-17
- 今天研究了个开源项目,数据库是mysql的,其中的脚本数据需要备份,由于本人的机器时mac pro,而且mac下的数据库连接工具都不怎么好用,就想着如何利用windows下的数据库连接工具使用,并做相关备份,另外windows系统下的sqlyo...2015-10-21
- vue项目中有一些方法需要在多个页面调用,但为了避免在每个页面都import进来,可以把方法加到原型上去,这样在每个组件中都能使用了,下面这篇文章主要给大家介绍了关于配置vue全局方法的两种方式,需要的朋友可以参考下...2021-09-13
- 这篇文章主要介绍了vue配置多代理服务接口地址操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-09-08
mysql(master/slave)主从复制原理及配置图文详解
这篇文章主要介绍了mysql(masterslave)主从复制原理及配置图文详解,以前脚本之家小编发过相关的内容,但这么好的非常少见特分享一下,需要的朋友可以参考下...2016-06-12- 这篇文章主要介绍了springboot中nacos动态路由的配置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-11
- 系统:centos 5.9 环境:apache 2.2.25 tomcat 7.0.42 jdk 1.7.0 1.安装apache 我这里是直接yum安装的,如果你们要编译安装也不是不行. 代码如下 ...2016-01-28
- 明明我的手机配置那么高(都八核了)为什么玩游戏还会卡?对安卓手机来说玩游戏卡顿的原因一般有两种;性能不足导致的卡顿以及CPU发热降频导致的卡顿,详情我们来看看吧...2017-07-06