Nacos多个实例的服务调用失败问题及解决

 更新时间:2026年02月24日 15:14:08   作者:天航星  
在微服务开发中,Nacos上出现多个同一服务实例导致OpenFeign调用失败,因为OpenFeign使用SpringCloudLoadbalancer,而SpringCloudLoadbalancer的底层默认负载均衡策略不支持Nacos,通过将负载均衡策略设置为Nacos,可以解决调用失败的问题

Nacos多个实例的服务调用失败

在微服务开发阶段,开发人员会频繁启动服务。

这样Nacos上会经常出现一个服务存在多个实例,这是自己和其他同事都启动了同一个服务造成的。

此时使用OpenFeign对该服务进行远程调用,会有很大概率出现调用失败的情况,这是OpenFeign内部的负载均衡策略造成的。

原因分析

OpenFeign的负载均衡是使用Spring Cloud Loadbalancer实现的。

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-loadbalancer</artifactId>
</dependency>

Spring Cloud Loadbalancer的底层默认是依靠Ribbon实现的。

Nacos的负载均衡不支持使用Ribbon,需要使用自己的。

将负载均衡设置为Nacos的即可解决问题。

spring:
  cloud:
    loadbalancer:
      # 关闭Ribbon的负载均衡器
      ribbon:
        enabled: false
      # 开启Nacos的负载均衡器
      nacos:
        enabled: true

环境

  • Spring Cloud Alibaba 2021.0.4.0
  • Spring Cloud OpenFeign 3.1.4
  • Spring Cloud Loadbalancer 3.1.4

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java制作广告图片自动轮播控件

    java制作广告图片自动轮播控件

    本文给大家分享了2款java实现的首页广告图片自动轮播的控件,分别是PC端和移动端的,效果非常不错,有需要的小伙伴可以参考下。
    2015-10-10
  • Spring框架中@AliasFor注解详细说明

    Spring框架中@AliasFor注解详细说明

    这篇文章主要给大家介绍了关于Spring框架中@AliasFor注解详细说明的相关资料,@AliasFor是Spring Framework中的一个注解,它用于指定注解属性之间的别名关系,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-02-02
  • Spring MVC数据绑定概述及原理详解

    Spring MVC数据绑定概述及原理详解

    这篇文章主要介绍了Spring MVC数据绑定概述及原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • 浅谈Java程序运行机制及错误分析

    浅谈Java程序运行机制及错误分析

    这篇文章主要主要介绍了Java虚拟机(JVM)的有关内容以及Java程序的运行机制和错误分析,需要的朋友可以了解下。
    2017-09-09
  • 解决Idea的选择文件后定位瞄准器"Select Opened File"的功能不见了

    解决Idea的选择文件后定位瞄准器"Select Opened File"的功能

    使用IntelliJ IDEA时,可能会发现"SelectOpenedFile"功能不见了,这个功能允许用户快速定位到当前打开文件的位置,若要找回此功能,只需在IDEA的标题栏上右键,然后选择"Always Select Opened File",这样就可以重新启用这个便捷的功能
    2024-11-11
  • Java如何向主函数main中传入参数

    Java如何向主函数main中传入参数

    这篇文章主要介绍了Java如何向主函数main中传入参数,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • Spring启动流程refresh()源码深入解析

    Spring启动流程refresh()源码深入解析

    这篇文章主要给大家介绍了关于Spring启动流程refresh()源码深入解析的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Java基于Socket实现HTTP下载客户端

    Java基于Socket实现HTTP下载客户端

    这篇文章主要介绍了Java基于Socket实现HTTP下载客户端的相关资料,感兴趣的小伙伴们可以参考一下
    2016-01-01
  • Java集合框架数据存储与操作的神器

    Java集合框架数据存储与操作的神器

    Java集合框架提供了多种数据结构和操作方法,包括Collection接口、Map接口以及各种实现类,本文详细介绍了集合框架的层次结构、常见接口和实现类的特点、使用场景以及最佳实践,帮助开发者高效地进行数据存储和操作,感兴趣的朋友跟随小编一起看看吧
    2025-12-12
  • MybatisPlus较全常用复杂查询的示例(limit、orderby、groupby、having、like...)

    MybatisPlus较全常用复杂查询的示例(limit、orderby、groupby、having、like...)

    本文主要介绍了MybatisPlus较全常用复杂查询的示例,包括limit、orderby、groupby、having、like等,具有一定的参考价值,感兴趣的可以了解一下
    2025-12-12

最新评论