Quarkus RestClient DNS 在多个 A 类型 IP 地址上进行故障转移?

问题描述 投票:0回答:1

我正在使用 Quarkus RestClient,遇到了一些问题。 我有一个 URL,它在内部解析为 4 个不同的 IP 地址(在本例中数据和 IP 地址是假名的):

[user@server]$ dig service.example.com

;; ANSWER SECTION:
service.example.com.    740 IN  CNAME   service-example-com.some-internal-resolution.com.
service-example-com.some-internal-resolution.com. 290 IN A  300.300.351.76
service-example-com.some-internal-resolution.com. 290 IN A  300.300.350.1
service-example-com.some-internal-resolution.com. 290 IN A  300.300.349.76
service-example-com.some-internal-resolution.com. 290 IN A  300.300.348.1

在我看来,Quarkus RestClient只获取第一个IP地址,因为问题是,当第一个IP地址无法访问时,我会得到连接超时,尽管其他IP地址是可以访问的,所以我认为这是一个RestClient 有问题吗?

是否有办法绕过此行为,以便在第一个 IP 地址无法访问时 RestClient 也会尝试其他 IP 地址?

dns quarkus rest-client quarkus-rest-client
1个回答
0
投票

这是预期的行为。要做你想做的事,你需要使用stork(Quarkus的服务发现框架) - https://smallrye.io/smallrye-stork/1.3.1/service-discovery/dns/

然后:

quarkus.stork.my-service.service-discovery.type=dns

您的其余客户端将使用

stork://my-service
URL。

© www.soinside.com 2019 - 2024. All rights reserved.