Cnas认证咨询服务机构:试图从咨询取消注册服务不工作

关于Cnas认证咨询服务机构的问题,在deregister中经常遇到, 我正在使用 consul 客户端从我的 junit 测试中注销服务。我正在使用 vert-consul-client。我正在使用的 consul 版本是 1.11.1。该服务未向 consul 注册,但只是测试如果我们尝试注销未注册的服务会发生什么。

我正在使用 consul 客户端从我的 junit 测试中注销服务。我正在使用 vert-consul-client。我正在使用的 consul 版本是 1.11.1。该服务未向 consul 注册,但只是测试如果我们尝试注销未注册的服务会发生什么。

从日志中我得到这个错误

Status message: 'Not Found'. Body: 'Unknown service "BadService"'

奇怪的是,当测试 1.10.6 领事版本时,我没有得到这个错误。

如果你能帮忙谢谢

0

奇怪的是,当测试 1.10.6 领事版本时,我没有得到这个错误。

Consul 最近更改了尝试取消注册不存在的服务时发送的 HTTP 响应代码。

在 Consul 1.11.0 之前,当ACLs被禁用时,Consul 将在注销不存在的服务时使用 HTTP 200 响应代码和无响应正文进行响应。

$ curl --include \
       --request PUT http://localhost:8500/v1/agent/service/deregister/test
HTTP/1.1 200 OK
Vary: Accept-Encoding
X-Consul-Default-Acl-Policy: allow
Date: Wed, 05 Jan 2022 03:07:35 T
Content-Length: 0

PRhashicorp/consul#10632在 Consul 1.11.0 中更改了此行为,其中,如果服务不存在,Consul 现在将返回 HTTP 404 响应代码,而不管是否启用了 ACL。(请参阅consul/agent/acl.go的差异)。

$ curl --include \
       --request PUT http://localhost:8500/v1/agent/service/deregister/test
HTTP/1.1 404 Not Found
Vary: Accept-Encoding
X-Consul-Default-Acl-Policy: allow
Date: Wed, 05 Jan 2022 03:24:21 T
Content-Length: 22
Content-Type: text/plain; cht=utf-8
Unknown service "test"

当与 Consul 1.10.6 通信时,您显然没有在 vertx-consul-client 中看到错误,因为 HTTP 200 代码指示请求成功,而 HTTP 404 响应正确地表示资源不存在,并且正确地引发了错误(请参阅vert-consul-client/src/main/java/io/vertx/ext/consul/impl/ConsulImpl.java#L1320-L1333)。

有趣的是,在 Consul 1.10.x 中,当在集群上启用 ACL时,Consul 将使用 HTTP 500 错误代码和相应的错误消息而不是 200 响应代码进行回复。这是因为启用 ACL 后,vetServiceUpdateWithAuthorizer函数不会过早返回 (if authz == nil { return nil }),而是继续检查服务是否存在,然后引发错误,因为它不存在 (a>)。

$ curl --include \
       --header "X-Consul-Token: $CONSUL_HTTP_TOKEN" \
       --request PUT http://localhost:8500/v1/agent/service/deregister/test
HTTP/1.1 500 Internal Server Error
Vary: Accept-Encoding
X-Consul-Default-Acl-Policy: deny
Date: Wed, 05 Jan 2022 03:14:52 T
Content-Length: 22
Content-Type: text/plain; cht=utf-8
Unknown service "test"

如果您测试了启用 ACL 的 1.10.6,您也会收到与 1.11.1 类似的错误。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(592)
Ckd防爆电磁阀:Arduino控制 6种不同模式的电磁阀
上一篇
数据库连接超时原因:无法打开数据库文件原因:文件不是数据库 在数据库浏览器和 python中
下一篇

相关推荐

  • cvt和自动挡哪个好提升驾驶体验的最佳选择

    CVT(可变转换器)是一种由传动带及传动轮组成的无级变速器,它可以在没有传动档位的情况下,根据驾驶者的驾驶习惯,自动调整传动轮之间的转速比,从而实现无级变速。自动挡是指车辆自动变速箱,它使用液力传动来实现变速,可以自动适应车辆的行驶状态,减少司机的疲劳,提高行车的舒适性。…

    2023-06-08 07:42:19
    0 31 37
  • cv一叶扁舟和清影轩阳:漫游在一叶扁舟和清影轩阳之间

    cv一叶扁舟是一款开源的计算机视觉库,用于图像处理、计算机视觉等。它提供了丰富的API,可以帮助开发者快速实现各种图像处理任务,如图像分割、目标检测、图像识别等。清影轩阳是一款开源的计算机视觉框架,用于图像处理、目标检测、分类等。它提供了丰富的API,可以帮助开发者快速实现各种图像处理任务,如图像分割、目标检测、图像识别等。…

    2023-08-05 07:06:20
    0 31 26
  • css设置滚动条宽度设置:This is a title

    CSS设置滚动条宽度的方法:使用CSS3的。-webkit-属性:…

    2023-06-06 10:53:01
    0 55 86
  • xl和xe汽车cvt:探索XL和XE汽车的CVT技术优势

    XL和XE汽车CVT是一种变速器,它使用液力变矩器代替传统的机械变速器,以达到更高的效率。它的工作原理是,当发动机输出功率时,液力变矩器就会将这些功率转换为液压能量,然后将能量传递到变速器的输出轴上,从而实现变速。…

    2023-04-09 00:41:04
    0 91 82
  • cordon bleu是什么意思:法式炸鸡卷——Cordon Bleu的经典之作

    Cordon Bleu是一种烹饪技术,其中肉片被置于奶酪和火腿之间,然后用面包屑裹上,最后煎炸或烤熟。这种技术通常用于制作鸡肉,但也可以用于制作其他类型的肉类,如牛肉或猪肉。…

    2024-01-27 15:13:30
    0 82 14
  • countif 非空:非空单元格的计数

    Countif 非空是指计算某个单元格不为空的数量。代码如下:…

    2023-04-22 15:54:15
    0 56 24
  • java double保留一位小数:How to Round a Double to One Decimal Place in

    示例示例使用类可以轻松实现java double保留一位小数的功能,具体代码如下:// 创建对象…

    2023-05-14 07:40:03
    0 41 22
  • linux如何写c语言一个完整的指南

    示例示例在Linux系统中,可以使用C语言编写源代码文件,然后使用GCC编译器来编译源代码文件,生成可执行文件。下面是一个简单的C语言代码示例:…

    2023-05-16 02:02:45
    0 79 51

发表评论

登录 后才能评论

评论列表(64条)