解决feign不能通过服务名调用的问题

文章讲述了开发者在使用Feign通过Nacos服务名调用接口时遇到问题,解决过程涉及到版本不匹配和Ribbon的排除。最终发现是由于SpringCloudAlibaba依赖版本选择不当所致,推荐升级到对应版本以确保兼容性。
摘要由CSDN通过智能技术生成

最近开发中遇到一个问题:
服务已经注册到nacos中了,但是Feign不能通过服务名调用接口。
客户端的代码:

@FeignClient(name = "user-service", decode404 = true)
public interface SysUserClient {

    @GetMapping(value = "/getCurrentUser")
    String getCurrentUser();
}

异常信息:

java.lang.AbstractMethodError: org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient.choose()

后来,我在后面加上url = "http://localhost:8081"就可以了:

@FeignClient(name = "user-service", decode404 = true,url = "http://localhost:8081")
public interface SysUserClient {

    @GetMapping(value = "/getCurrentUser")
    String getCurrentUser();
}

保持着不懂就百度的姿势,没有找到解决的方案,但是受到了一点启发,版本没对上。
最后看一下依赖:

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-nacos-discovery</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

这两个依赖spring-cloud-alibaba-nacos-discovery和spring-cloud-starter-alibaba-nacos-discovery的区别:一个多了starter,一个少了starter。

百度一下这两货的区别:
如果你已经升级到 Spring Boot 版本大于等于2.3.0,那么你应该使用 Spring Cloud Alibaba 的最新版本,即 spring-cloud-starter-alibaba-nacos-discovery 的最新版本。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值