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

使用nacos的sdk发布服务后,nacos他一直发送心跳包检测当前发起服务得地址,想问问?

使用nacos的sdk发布服务后,nacos他一直发送心跳包检测当前发起服务得地址,想问问nacos得心跳可以设置吗,我在使用go-netty搭建服务端发布服务后,端口绑定的监听器一直接收到空请求,总是报EOF异常,即使忽略,尝试com浏览器发起请求无反应,服务器刚启动还是可以的,想问问大佬有什么解决方案吗,除了设置心跳时间,能不能考虑多线程和异步的做法,我在java上的netty框架就没出现这样的问题?

展开
收起
cuicuicuic 2023-08-02 09:52:28 69 0
1 条回答
写回答
取消 提交回答
  • Nacos 的服务发现是基于心跳机制的,当客户端向 Nacos 发送心跳包时,Nacos 会更新客户端的状态。如果客户端长时间没有发送心跳包,Nacos 就会认为客户端已经下线,然后将客户端从服务列表中移除。

    Nacos 使用心跳机制来检测客户端的状态,是为了保证服务发现的准确性。如果没有心跳机制,那么客户端可能会因为网络原因或者其他原因长时间无法与 Nacos 通信,这样就会导致 Nacos 无法及时更新客户端的状态,从而导致服务列表不准确。

    Nacos 的心跳包是通过 HTTP GET 请求发送的,默认的端口是 8500。心跳包的请求地址为 /nacos/v1/ns/instance/heartbeat?serviceName=${serviceName}&ip=${ip}&port=${port}&weight=${weight}&cluster=${cluster}&healthy=${healthy}。

    健康检查是 Nacos 服务发现的核心功能,它可以保证服务注册表中的数据始终是最新和最准确的。Nacos 通过心跳机制来检测客户端的状态,如果客户端长时间没有发送心跳包,Nacos 就会将客户端从服务列表中移除。

    Nacos 的心跳机制可以有效防止服务注册表数据的脏数据,从而保证高可用和可靠性。

    2023-09-25 17:59:07
    赞同 展开评论 打赏

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

相关电子书

更多
workshop专场-微服务专场-开发者动手实践营-微服务-使用Nacos进行服务的动态发现和流量调度 立即下载
Nacos 启航,发布第一个版本, 云原生时代助力用户微服务平台建设 立即下载
一个跨平台的云服务SDK需要什么 立即下载