服务注册与发现:Nacos vs Eureka vs Consul——三选一实测+迁移方案
引言 三年前我们把单体拆成微服务时,调用关系是这样配置的: # order-service/application.yml user-service: url: http://10.0.1.23:8081 # 用户服务写死 IP stock-service: url: http://10.0.1.24:8082 # 库存服务写死 IP 第一次故障来得毫无悬念:用户服务那台 1.23 物理机宕机,运维紧急在 1.55 拉起实例,然后挨个改 20 个服务的配置、重启、祈祷没有漏网之鱼——光改配置就花了 40 分钟。第二次故障更尴尬:大促临时扩容 10 台库存服务,新实例起来后订单服务一个都调不到——没有地方让它知道“新来的兄弟住在哪”。 IP 漂移(实例挂了换机器)和动态扩容(实例数量随时变)这两个问题,本质上是同一个诉求:服务之间不能用"写死地址"通信,必须有一个"地址簿"动态维护"谁在线、住哪、健不健康"——这就是注册中心。 但选哪个地址簿,团队一直有分歧:老系统跑着 Eureka,新架构组推 Nacos,运维同学说他们更熟 Consul。 这篇文章把注册中心的本质讲透,再对三个候选....