nacos作为配置中心使用的长轮询是怎么一回事及长轮询重要源码解读

配置中心和客户端(我们自己的业务工程)实现配置的动态感知一般无外乎两种办法,一种是客户端主动发起pull模式,或者配置中心发起push。
1.nacos作为配置中心和客户端是通过客户端主动发起的pull模式,但是这不是单纯的pull,是一个httppost的长轮询,过期时间默认是30S,什么意思呢,客户端发起一个http请求发给配置中心,配置中心接到了请求那一刻如果正好配置有变化就立即返回变化后的配置。但是如果在这一刻没有变化配置中心不会给客户端返回数据,等到29.5S后配置中心会启动一个延时定时任务,回去检查配置是否有更新。但是我们都清楚如果这29.5S期间,配置修改了难道客户端要过了这个期间才会知道配置修改了么,显然这个是不合理的。nacos采用了发布订阅模式,配置修改了服务端会发布一个事件,这个事件还会有一个监听的地方,这样就达到了动态感知配置的修改。具体重要源码流程请看图片。spring的发布订阅模式可以去百度其他文章。

图片上传不上来,源码解析放到网盘
https://pan.baidu.com/s/1nUCSPaC1cjT-tX8WxMAO5A
e87v

2.spring-config配置的动态感知采用的是消息总线是通过rabbitMq来搞的。这里不详细阐述。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用Nacos作为配置中心的步骤如下: 1. 引入Nacos Config的依赖。在你的项目中的pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> ``` 2. 添加bootstrap配置文件。在你的项目中创建一个名为bootstrap.properties或bootstrap.yaml的配置文件,并在其中配置Nacos Server的地址和其他相关配置,例如: ```properties spring.cloud.nacos.server-addr=192.168.xxx.xxx:8848 spring.cloud.nacos.username=nacos spring.cloud.nacos.password=nacos spring.cloud.nacos.config.namespace=b4d0832b-a7b0-44c2-8ce5-1abe676a4736 ``` 这些配置将用于连接Nacos Server和指定命名空间。 3. 在你的应用程序中使用Nacos配置。你可以在应用程序中使用`@Value`注解或`@ConfigurationProperties`注解来获取Nacos配置的值。例如,在app-user服务中,你可以使用以下方式获取Nacos配置: ```java @Value("${your.config.key}") private String yourConfigValue; ``` 或者 ```java @ConfigurationProperties(prefix = "your.config") public class YourConfigProperties { private String key; // getter and setter } ``` 然后在需要使用配置的地方使用`yourConfigValue`或`yourConfigProperties.getKey()`。 这样,你就可以使用Nacos作为配置中心来管理和获取配置了。 #### 引用[.reference_title] - *1* [使用Nacos作为配置中心](https://blog.csdn.net/weixin_66202611/article/details/128089370)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Nacos配置中心使用](https://blog.csdn.net/qq_42402854/article/details/126375127)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值