架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 310|回复: 0

关于 Consul 中 Blocking Queries 阻止查询详解

[复制链接]
发表于 2024-8-22 11:11:24 | 显示全部楼层 |阅读模式
需求:Consul 一些接口支持“阻止查询”功能,通过此功能可以防止频繁拉取 Consul 中的数据,如果数据没有发生变化,会一直阻塞到指定时间才会响应,如果数据发生变化,会立马响应请求。

Consul 中的许多端点都支持一项称为“阻塞查询”的功能。阻塞查询用于使用长轮询等待潜在更改。并非所有端点都支持阻塞,但每个端点都会在文档中唯一地记录其对阻塞查询的支持。

文档:https://developer.hashicorp.com/consul/api-docs/features/blocking

支持 Blocking Queries 阻止查询的接口

响应头会返回:X-Consul-Index,请求查询参数携带:index(上一次响应头的 X-Consul-Index 内容)

本文以 KV 存储查询接口为例,文档:https://developer.hashicorp.com/consul/api-docs/kv,如下图:

QQ截图20240822105239.jpg

第一次不携带请求参数(或携带默认值0)

可以看到响应立马返回,响应头中包含 x-consul-index 信息,如下图:

QQ截图20240822105418.jpg

再次请求接口

携带 index 请求参数,可以看到请求被阻塞(默认为 5 分钟),然后到了默认等待时间才会响应,如下图:

QQ截图20240822110241.jpg

再请求过程中修改 KV 的值

如果在请求过程中,触发了阻止查询功能等待,这时,如果修改 KV 的值,请求会立马响应,如下图:

consul.gif

对 .NET/C# 代码调用,参考如下:

参考:https://github.com/G-Research/consuldotnet/blob/master/Consul/Client_GetRequests.cs

(完)





上一篇:.NET/C# 调用百度通用翻译 API 接口
下一篇:MikroTik(一)RB3011UiAS-RM 拆箱图片
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-10-8 10:35

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表