开发者社区 > 云原生 > 正文

BUG Report : Nacos Address Server 调用 HTTP 接口 无法添加节

我下载了已发行版本源码 Nacos 2.2.0

当我启动 Nacos Address Server 后,调用如下接口完成添加节点

POST http://localhost:8080/nacos/v1/as/nodes?product=life&cluster=default&ips=127.0.0.2:8080

提问30.png

但是 Nacos Address Server 却返回了 illegal ip: 127.0.0.2:8080

Expected behavior 期望注册成功

Actually behavior 注册不成功

How to Reproduce 正常运行即可复现

Desktop (please complete the following information):

OS: Win11 Version:Nacos 2.2.0 Module:address SDK 源码方法直接运行 Additional context Add any other context about the problem here. ** 我排查到了问题原因 **

提问31.png

String[] ipArray = addressServerManager.splitIps(ips); 该方法返回的是 按照 逗号 分割的数据,参数为 127.0.0.2:8080 该方法返回 ["127.0.0.2:8080"]

而接下来的方法 InternetAddressUtil.checkIPs(ipArray); 校验 IP 是否合法,该方法只能对单个 ip 进行校验,如果ip:port 形式 则返回失败。 但是调用校验ip方法的参数 确实包含了端口的。

所以这里有个冲突。

这里我猜测难道不能指定port? 只能使用单个ip? 然后端口就用默认的8848?

不过随着我后面的继续翻阅源码。

就是这里,根据 ip 生成 实例 的时候却 取了该字段 (以冒号形式进行了拆分),也就是后面解析了ip:port方法

提问32.png

但是带 port 的ip是传递不过来的

原提问者GitHub用户sixsixsix516

展开
收起
学习娃 2023-05-22 15:31:26 87 0
1 条回答
写回答
取消 提交回答
  • 地址服务器是不能带port的, 是一个类似dns的服务。

    原回答者GitHub用户KomachiSion

    2023-05-22 20:28:08
    赞同 展开评论 打赏

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
阿里巴巴HTTP 2.0实践及无线通信协议的演进之路 立即下载
workshop专场-微服务专场-开发者动手实践营-微服务-使用Nacos进行服务的动态发现和流量调度 立即下载
Nacos 启航,发布第一个版本, 云原生时代助力用户微服务平台建设 立即下载