Eureka迁移到Nacos之服务名称大小问题解决

我们应用往Eureka中注册使用的名称以及应用内部通过Feign调用,使用的服务名称都是小写,如user-service,但是注册到Eureka中后,应用的名称全部都是以大写的形式存储及展现,由于Eureka客户端对大小写的支持都是一样的,因而通过Feign使用小写的名称调用就没有问题。

现在是将Spring Cloud注册中心由Eureka迁移到Nacos,但是Nacos服务端及Nacos客户端对服务名称的支持是区分大小写的,即从Eureka同步到Nacos中的大写服务名称,通过Feign中使用小写的服务名称调用时,就会报找不到服务的错误。

针对这种情况,考虑了以下四种解决方案:
1、改Nacos的服务端与客户端,使其对大小写服务名称不敏感,如果等官方版本支持,可能不知道到什么时候,要么就自己改,但是以后就不能够升级官方的新版本,与官方支持的版本升级就会脱节;
2、修改Eureka对外提供的服务名称,这个代价也不小,更何况这也不是Eureka的问题;
3、修改应用中的调用,都使用大写,服务注册时名称全部修改为大写,上百个应用相互调用,有非常多的地方要改,成本太高;
4、修改NacosSync,将从Eureka中获取到的服务名称修改为小写后再同步到Nacos中,这种方案成本最小,且修改容易,不会修改到Nacos以及Eureka本身,不影响将来的升级;
 

在NacosSync中,EurekaNamingService主要负责与Eureka的交互,如注册节点、更新节点、删除节点以及获取应用的节点信息等,此时只需要针对获取到的应用节点信息,将其应用名称处理成小写再返回给调用方即可,具体的变更可查看以下码云的提交:

https://gitee.com/laofeng/nacos-sync/commit/899368db12d5c125f1376f7b047588a8667cef77

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值