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

nacos 怎么把 线上的远程的服务注册到本地

nacos 怎么把 线上的远程的服务注册到本地,我通过一下代码能注册,也能正常使用,但是由于没心跳,一会就自动下线。 2种解决方案, 1,脚本轮询注册. 2,nacos不检查健康状态。但是设置了ephemeral=false ,注册不了说: did not find the Leader node curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?namespaceId=hera&groupName=aaa&serviceName=data&ephemeral=false&ip=183.201.221.19&port=21348' 解该语句没问题

展开
收起
乐天香橙派 2023-06-28 14:46:56 131 0
3 条回答
写回答
取消 提交回答
  • 可以尝试使用Nacos SDK来注册服务,并设置心跳和健康检查,以保持服务的在线状态。

    2023-06-30 09:17:22
    赞同 展开评论 打赏
  • 您想将线上远程的服务注册到本地的Nacos中,并且由于没有心跳,服务会自动下线。您提到了两种解决方案,一种是通过脚本轮询注册,另一种是禁用Nacos的健康状态检查。但是,当您设置ephemeral=false时,出现了"did not find the Leader node"的错误。

    针对您的问题,我提供以下解决方案:

    1. 脚本轮询注册:您可以编写一个脚本,在一定时间间隔内进行服务注册操作,以保持服务的在线状态。可以使用定时任务工具,如cron等,定时执行注册操作。这样可以避免服务因为没有心跳而自动下线。

    2. 禁用Nacos的健康状态检查:您可以通过在服务注册时设置healthCheck=false来禁用Nacos的健康状态检查。例如:

    curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?namespaceId=hera&groupName=aaa&serviceName=data&ephemeral=false&healthCheck=false&ip=183.201.221.19&port=21348'
    

    这样设置可以让服务注册成功,但是需要注意,禁用健康状态检查可能会导致无法及时发现服务的异常情况,因此需要确保服务的可用性和健康状态。

    另外,关于"did not find the Leader node"的错误,可能是由于Nacos集群中的Leader节点无法正常工作导致的。您可以检查Nacos集群的状态,确保集群中有可用的Leader节点。

    2023-06-28 15:27:02
    赞同 展开评论 打赏
  • 本地和线上网络通吗—此回答来自钉群“Nacos社区群3”

    2023-06-28 15:14:43
    赞同 展开评论 打赏
问答分类:
问答地址:

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

相关电子书

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