springcloud + zookeeper - Go语言中文社区

springcloud + zookeeper


上次搭建了一个比较简单的springcloud脚手架,是使用eureka作为脚手架,但是最近发现朋友圈有好多刷eureka2..x开源工作停止的推文,也就是springcloud之后的版本可能不会使用eureka作为注册中心,而且继续使用eureka2.0后的版本是有版权问题的,所以今天花了几个小时重新搭建了一个由zookeeper作为注册中心的springcloud脚手架,其结构如下


因为注册中心换成zookeeper,所以原有的server可以去掉了


配置所需要的jar包

parent的pom不需要改变,把子包的基于eureka的jar替换成zookeeper


在zookeeper中添加配置


修改配置文件

bootstrap.properties换成zookeeper作为配置中心的配置,看注释应该也应该可以明白,和原来的config的规则类似

application.properties修改如下,也比较简单



修改启动类的注解

添加一个能查看所有接口的api

discoveryClient通过Autowire自动注入即可,看这个名字也知道是由启动类上的注解完成注入的

启动client1

这里其实我已经全部搭建完了,所以还有网关和配置的服务,client2也是如上搭建即可

搭建zuul网关服务

maven中加入zookeeper相关的jar,配置文件和client大同小异,启动类注解也不需要变化,启动之后如下



搭建config服务

因为使用zookeeper作为配置中心所以不需要向之前那样使用spring cloud-config,只需要如下的包即可



因为使用了zookeeper作为配置中心,所以修改配置可以直接通过zkclient修改,也就是其实config这个服务是可有可无的(除非继续使用使用springcloud-config),当然既然我创建了这个服务说明肯定要有点作用的,没错,我们可以提供rest的api查看和修改zk中的配置。


创建zk 的工具类

具体看github中的代码,将工具类注入spring容器中



编写controller

这里要说明一个问题,就是使用restful风格的api会有个问题,就是path因为在zk中是/,这样就会有问题,所以定义了自定义的符号转换(-0等于/ ,-1等于-),也就是zk中的地址为/config/client-dev/name转换后为-0config-0client-dev-0name。,当然我也提供了不是restfull风格的,这样就不需要转义了。

启动后测试如下


这里就先展示两个测试结果。


github地址

https://github.com/cdy1996/sample-springcloud/tree/zookeeper


版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/cdy1996/article/details/80867062
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-07 22:18:30
  • 阅读 ( 1157 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢