incubator-seata icon indicating copy to clipboard operation
incubator-seata copied to clipboard

raft模式客户端使用域名时,发生访问端口错误

Open zacharias1989 opened this issue 9 months ago • 1 comments

Ⅰ. Describe what this PR did

raft模式,客户端watch集群时,会使用解析后的IP地址查询raft节点。 如果客户端配置中使用域名,则无法用IP找到节点,导致获取http端口号错误。 这里修改为使用域名。 修改后,如果环境中存在DNS(如在k8s等环境中),需要优先使用域名,否则仍会出现匹配问题。 建议后续修改METADATA的数据结构,保存DNS解析结果,避免在queryHttpAddress中重复解析node地址。

Ⅱ. Does this pull request fix one issue?

fixes #6532

Ⅲ. Why don't you add test cases (unit test/integration test)?

修改内容较少,如果环境中不存在DNS,不造成任何影响

Ⅳ. Describe how to verify it

在k8s环境中直接使用集群内部域名时,个人已验证

Ⅴ. Special notes for reviews

由于METADATA中只记录了原始节点信息,不区分域名或IP,所以无法确保比较结果。 如果直接在queryHttpAddress解析原始节点信息会造成不必要的网络压力和性能损失。 要彻底修复该问题,建议修改METADATA中的节点信息,解析并保存DNS解析结果,避免在queryHttpAddress中重复解析。

zacharias1989 avatar May 16 '24 04:05 zacharias1989