博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring-cloud 实现更新配置不用重启服务 @FreshScope
阅读量:4958 次
发布时间:2019-06-12

本文共 1411 字,大约阅读时间需要 4 分钟。

继续前面搭建的spring cloud。

这里是基于rabbitMQ搭建的,首先需要在电脑上安装rabbitMQ。

在client端和server端分别加上如下依赖

compile group: 'org.springframework.cloud', name: 'spring-cloud-starter-bus-amqp', version: '1.0.1.RELEASE'

AMQP (Advanced Message Queuing Protocol)是一种通讯协议,而rabbitMQ就是使用的这种通讯协议。

client端的application.properties加上如下

spring.rabbitmq.host=localhostspring.rabbitmq.port=5672spring.rabbitmq.username=rootspring.rabbitmq.password=root

client端的configuration包下的配置类文件上应该有@ConfigurationProperties()注解

@Data@Component@ConfigurationProperties(prefix = "fzk")public class BaseConfiguration {  private String nick;}

在每个注入了这个configuration的类加上@FreshScope注解

@RestController@RefreshScopepublic class ClientApplication {
@Autowired Base base; @RequestMapping(value = "/foo", method = RequestMethod.GET) public String foo() { return base.getNick(); }}

完成之后执行下面命令下载jar包。

gradle buildgradle eclipse

server端同样编译后,先启动server端,在启动client端。

浏览器上输入localhost:8889/foo会看到获取到的数据。去gitlab修改下fzk-beta.properties,重新在浏览器上输入,发现现在获取的还是原来的数据,并没有修改。从服务端(http://localhost:8888/fzk/beta)可以获取到最新的数据。这里想让client端不重启服务就能获取到更新后的数据需要手动发送一个post请求到client端(http://localhost:8889/fresh)

$ curl -X POST http://localhost:8889/refresh ["config.client.version","fzk.nick"]

所以想数的时,这里并不是完全的自动。还需要调用一个接口,这个接口一般是通过存放config的push事件来触发的,如果一个服务可以直接写在webhook中。但是如果需要触发多个服务自动更新,可以在jenkins配置一个job,webhook出去这个job,这个job来触发多个服务的post请求操作。

转载于:https://www.cnblogs.com/badboyf/p/6522543.html

你可能感兴趣的文章
(DCloud)用这个来写H5,好像好厉害的样子哦
查看>>
程序员英语学习(持续更新)
查看>>
vue中使用base64和md5
查看>>
数据库日期查询存在的问题
查看>>
学习Python3基础知识过程中总结
查看>>
IReport 使用技巧二:避免在首尾打印出空白页
查看>>
bzoj 3275: Number
查看>>
SQL SERVER 中的提示
查看>>
11月23号站立会议
查看>>
Linux 连续运行多条命令
查看>>
iOS 常用的向上,向下取整, 四舍五入函数
查看>>
NOI2018Day2T1 屠龙勇士 set 扩展欧几里德 中国剩余定理
查看>>
深入浅出net泛型编程
查看>>
Android提高篇之自定义dialog实现processDialog“正在加载”效果、使用Animation实现图片旋转...
查看>>
股神小L
查看>>
maven中jar包的maven地址查询
查看>>
新浪通过短信验证码找回无法正常工作
查看>>
一年经验初探阿里巴巴前端社招
查看>>
SOAP WebService 和 RESTful WebService简述
查看>>
MyEclipse中spring MVC的配置
查看>>