架构序列六:springcloud项目下如何把zookeeper和zkui结合起来使用?动态配置应该怎么玩?

广大朋友上午好。

如标题,此篇文章则详细解释zk和zkui的搭配使用,望各位朋友打起12分精神跟着作者一起学习呦~~~

首先第一步需要把zkui搞定:

zk大家都知道,可单节点,可集群,那zkui呢?

zkui只是界面化操作而已,只需单节点即可,然后配置中增加zk的集群进行关联即可。

以下是zkui的源码,我也会分享出来,免费的哦~

架构序列六:springcloud项目下如何把zookeeper和zkui结合起来使用?动态配置应该怎么玩?_第1张图片

第一步,获取到源码后先用idea环境打开,然后直接install即可,然后获取下图:

架构序列六:springcloud项目下如何把zookeeper和zkui结合起来使用?动态配置应该怎么玩?_第2张图片

然后第二步放入对应的服务器:

同时把config.cfg文件移出来和zkui-2.0-SNAPSHOT-jar-with-dependencies.jar同级目录放入。

架构序列六:springcloud项目下如何把zookeeper和zkui结合起来使用?动态配置应该怎么玩?_第3张图片

第三步更改config.cfg配置文件或者在idea中直接改好:

架构序列六:springcloud项目下如何把zookeeper和zkui结合起来使用?动态配置应该怎么玩?_第4张图片

架构序列六:springcloud项目下如何把zookeeper和zkui结合起来使用?动态配置应该怎么玩?_第5张图片

如图zkui的配置可以配置到数据库中,不过作者的配置形式是使用文件,也很方便,如何使用,等下会进行解释。

接下来jar包放入之后可以进行启动了

启动命令:nohup java -jar zkui-2.0-SNAPSHOT-jar-with-dependencies.jar > nohup.out 2>&1 &

查看启动日志:tail -f nohup.out

如果启动成功后,那么会看到如下界面:

登录地址:http://127.0.0.1:2182/login

架构序列六:springcloud项目下如何把zookeeper和zkui结合起来使用?动态配置应该怎么玩?_第6张图片

对了这里说明下,springboot项目默认使用的容器是tomcat,zkui这里的容器使用的jetty。

用户名和密码就是刚才config.cfg配置中的

登录成功后:

架构序列六:springcloud项目下如何把zookeeper和zkui结合起来使用?动态配置应该怎么玩?_第7张图片

在此我把micro-business-A-api进行服务注册,咱们来看看效果:

解压tar包

架构序列六:springcloud项目下如何把zookeeper和zkui结合起来使用?动态配置应该怎么玩?_第8张图片

启动服务:

图片

启动成功:

图片

启动成功后来看zkui:

架构序列六:springcloud项目下如何把zookeeper和zkui结合起来使用?动态配置应该怎么玩?_第9张图片

服务已成功注册。

架构序列六:springcloud项目下如何把zookeeper和zkui结合起来使用?动态配置应该怎么玩?_第10张图片

架构序列六:springcloud项目下如何把zookeeper和zkui结合起来使用?动态配置应该怎么玩?_第11张图片

此时三个相同的服务都已注册到zk中了。

如果关掉其中的一个或N个服务,zkui也可以检测到。

备注:此时集群中的服务一定要和zookeeper安装的服务器保持一致,否则服务启动报错,zk的安装请看"架构序列四"

注册成功了,那么我们该进行动态配置了。

刚上面作者也进行了配置方式的描述:文件配置.

配置第一步:

本地新建txt文件:

架构序列六:springcloud项目下如何把zookeeper和zkui结合起来使用?动态配置应该怎么玩?_第12张图片

上图中:

/config  :表示配置

/micro-business-A-api  :表示哪个服务的配置

,test  :哪种环境(test测试环境,test前面有个逗号哦)

和下图保持一致:

架构序列六:springcloud项目下如何把zookeeper和zkui结合起来使用?动态配置应该怎么玩?_第13张图片

server.port=8290   :配种中可直接指定服务的端口号哦

配置:

/config/micro-business-A-api,test=server.port=8112


咱们直接进行多配置:

架构序列六:springcloud项目下如何把zookeeper和zkui结合起来使用?动态配置应该怎么玩?_第14张图片

如上图,yml中能配置的这里都可以进行配置。

配置:

/config/micro-business-A-api,test=server.port=8112
/config/micro-business-A-api,test=spring.profiles.active=test
/config/micro-business-A-api,test=spring.datasource.dynamic.primary=master
/config/micro-business-A-api,test=spring.datasource.dynamic.strict=false
/config/micro-business-A-api,test=spring.datasource.dynamic.datasource.master.url=jdbc:jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false
/config/micro-business-A-api,test=spring.datasource.dynamic.datasource.master.username=root
/config/micro-business-A-api,test=spring.datasource.dynamic.datasource.master.password=123456
/config/micro-business-A-api,test=spring.datasource.dynamic.datasource.master.driver-class-name=com.mysql.jdbc.Driver
/config/micro-business-A-api,test=spring.datasource.dynamic.datasource.test.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false
/config/micro-business-A-api,test=spring.datasource.dynamic.datasource.test.username=root
/config/micro-business-A-api,test=spring.datasource.dynamic.datasource.test.password=123456
/config/micro-business-A-api,test=spring.datasource.dynamic.datasource.test.driver-class-name=com.mysql.jdbc.Driver
/config/micro-business-A-api,test=mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

配置好了直接上传文件:

架构序列六:springcloud项目下如何把zookeeper和zkui结合起来使用?动态配置应该怎么玩?_第15张图片

架构序列六:springcloud项目下如何把zookeeper和zkui结合起来使用?动态配置应该怎么玩?_第16张图片

架构序列六:springcloud项目下如何把zookeeper和zkui结合起来使用?动态配置应该怎么玩?_第17张图片

架构序列六:springcloud项目下如何把zookeeper和zkui结合起来使用?动态配置应该怎么玩?_第18张图片

架构序列六:springcloud项目下如何把zookeeper和zkui结合起来使用?动态配置应该怎么玩?_第19张图片

配置已完成。

这是micro-business-A-api目前测试环境的yml配置

架构序列六:springcloud项目下如何把zookeeper和zkui结合起来使用?动态配置应该怎么玩?_第20张图片

咱们既然已经在zkui中配置好了,那么yml中不需要的就可以删除啦:

架构序列六:springcloud项目下如何把zookeeper和zkui结合起来使用?动态配置应该怎么玩?_第21张图片

大家记得哦,以后所有的配置类都不用在yml中增加了,只需要在zkui中配置即可。

那么如果我需要新增配置该怎么增呢?如下图:

架构序列六:springcloud项目下如何把zookeeper和zkui结合起来使用?动态配置应该怎么玩?_第22张图片

架构序列六:springcloud项目下如何把zookeeper和zkui结合起来使用?动态配置应该怎么玩?_第23张图片

架构序列六:springcloud项目下如何把zookeeper和zkui结合起来使用?动态配置应该怎么玩?_第24张图片

好了~,我们既然把yml中的配置都干掉了,也应该测试下啦~

重新打包部署:

架构序列六:springcloud项目下如何把zookeeper和zkui结合起来使用?动态配置应该怎么玩?_第25张图片

启动成功

架构序列六:springcloud项目下如何把zookeeper和zkui结合起来使用?动态配置应该怎么玩?_第26张图片

那到底是否达到动态配置了呢?大家跟着作者来验证下:

架构序列六:springcloud项目下如何把zookeeper和zkui结合起来使用?动态配置应该怎么玩?_第27张图片

架构序列六:springcloud项目下如何把zookeeper和zkui结合起来使用?动态配置应该怎么玩?_第28张图片

从以上的微服务日志可看出只要更改了zkui的配置内容,则服务直接进行同步刷新,而且是集群的哦,就是就算有N台机器部署了相同的服务,只要zkui进行一次更改,此N台机器的微服务同时动态更新。

动态配置确实给我们维护带来了更多的方便,比如:我们服务的第一版本调用的是A机器的mysql,但是到第三版本的时候A机器的mysql下线了,需要更换到B机器的mysql。如果没有动态配置,那么我们是不是要一台机器一台机器进行登录,然后更改微服务的配置文件,然后更改完了还得重新启动,这太麻烦了,如果有10台机器(集群)呢?20台呢?  动态配置可让我们不到一分钟内搞定,这难道不香吗?

好了,到此今天的分享就结束了,都会了吗?大家可私下在micro-business-B-api中学练手习。当然,作者也非常欢迎和各位新旧朋友一起讨论,一起学习~图片图片图片

整套架构初步规划包含技能点:

    springcloud、springboot、mybatis、分环境打包、mybatis-plus、动态数据源、druid、增删改查一键生成、quartz集群、注册中心:zookeeper+zkui和nacos、gateway网关、feign的使用、熔断机制、如何防止雪崩、分布式+集群、一个项目如何进行zk和nacos同时使用、动态配置:一个配置,所有集群节点共同热点使用。

源码获取方式:

请关注以下公众号并回复: code

                                                      架构序列六:springcloud项目下如何把zookeeper和zkui结合起来使用?动态配置应该怎么玩?_第29张图片

你可能感兴趣的:(zookeeper,spring,cloud,zk)