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

请问一下Dubbo 3.1.5 + Nacos 2.2.0,在Nacos上操作下线,为什么Dubbo

请问一下Dubbo 3.1.5 + Nacos 2.2.0,在Nacos上操作下线,为什么Dubbo服务还是可以正常调用?2个节点,下线了其中一个节点,被下线的服务,还在不停的接受请求。

展开
收起
云问追踪 2023-03-31 11:56:36 10350 0
5 条回答
写回答
取消 提交回答
  • CSDN全栈领域优质创作者,万粉博主;InfoQ签约博主;华为云享专家;华为Iot专家;亚马逊人工智能自动驾驶(大众组)吉尼斯世界纪录获得者

    可能是因为Dubbo的负载均衡策略不同于Nacos的。在Nacos上操作下线后,需要等待一段时间才能生效,这段时间内Dubbo服务仍然可以正常调用。

    2023-05-18 09:11:14
    赞同 展开评论 打赏
  • Dubbo 是一个分布式服务框架,Nacos 是一个服务注册与发现中心,Dubbo 可以通过 Nacos 实现服务注册和发现。在 Dubbo 和 Nacos 集成的过程中,可能会遇到服务下线后 Dubbo 服务仍然可以正常调用的问题。这个问题通常是由以下原因导致:

    1、Dubbo 缓存机制:Dubbo 有自己的缓存机制,会缓存服务列表和调用结果等信息。如果服务下线时 Dubbo 的缓存没有及时更新,就可能导致服务仍然可以被调用。可以尝试清除 Dubbo 的缓存,或者重启 Dubbo 服务,以确保 Dubbo 缓存中的信息与 Nacos 上的服务列表一致。

    2、Nacos 配置问题:Nacos 中服务的下线是通过删除对应的服务实例来实现的。如果 Nacos 配置不正确,比如服务实例没有被正确删除,或者删除的服务实例并没有被 Dubbo 服务发现,就可能导致服务仍然可以被调用。可以检查 Nacos 配置是否正确,或者手动删除 Nacos 中的服务实例,以确保服务被正确下线。

    3、Dubbo 配置问题:Dubbo 与 Nacos 集成需要进行相应的配置,比如注册中心的地址、服务的版本号、协议等。如果 Dubbo 配置不正确,可能会导致服务注册或者发现失败,从而无法正确处理服务下线的情况。可以检查 Dubbo 配置是否正确,或者重新配置 Dubbo 与 Nacos 的集成。

    总之,在遇到 Dubbo 服务下线后仍然可以正常调用的问题时,需要仔细排查 Dubbo 和 Nacos 的配置、缓存、日志等信息,确定问题的根源,并采取相应的措施解决问题。

    2023-03-31 23:07:15
    赞同 1 展开评论 打赏
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。

    1.首先查看是不是部署了多台服务提供者,如果是停掉其中一台,这么做以后,发现还是有问题

    2.再次排查,通过dubbo admin管理端,查询了注册到zookepper里面的服务有两个版本,但是服务提供者只要1台呀,那另一台是哪里来的呢,后来运维同事说,昨天他手动启动了一台,所以出现两个相关名称的dubbo服务,这也就是解释了,为什么服务调用1次正常,下一次就不正常了,这里是请求了不同的dubbo服务产生的结果。

    二:解决办法:

    通过dubbo admin管理端删除掉手动启动的那台服务,这也服务调用就正常了。

    2023-03-31 16:34:48
    赞同 展开评论 打赏
  • 发表文章、提出问题、分享经验、结交志同道合的朋友

    Dubbo有缓存机制,有本地缓存,如果之前已经缓存了服务的地址,即使服务已经在Nacos下线,Dubbo客户端仍然会调用缓存的地址进行请求。可以尝试清除Dubbo的本地缓存。

    2023-03-31 12:42:16
    赞同 展开评论 打赏
  • 排查方向 日志确定一下 还在调用的consumer 最后推送的是 几个地址。

    此答案来自钉钉群“Nacos社区群"

    2023-03-31 12:01:02
    赞同 展开评论 打赏

快速交付实现商业价值。

相关产品

  • 函数计算
  • 云工作流
  • Serverless 应用引擎
  • 相关电子书

    更多
    Dubbo开源现状与2.7规划 立即下载
    Dubbo分布式服务治理实战 立即下载
    《Dubbo 3.0 前瞻》 立即下载