记springcloud关于eureka服务集群的大坑

文章讲述了在配置Eureka服务集群时,由于defaultZone的URI未以/eureka结尾导致的404错误。问题表现为服务实例间复制任务失败,日志频繁打印错误信息。解决方案是确保所有服务端defaultZone配置都以/eureka为结尾,不设置或设置空的context-path。作者认为这种设计可能导致初次启动时的路径问题,且在服务宕机时暴露出来,是个潜在的陷阱。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2023-06-09 02:07:21.282 ERROR 10768 --- [rget_eureka02-4] c.n.e.cluster.ReplicationTaskProcessor   : Batch update failure with HTTP status code 404; discarding 1 replication tasks
2023-06-09 02:07:21.282  WARN 10768 --- [rget_eureka02-4] c.n.eureka.util.batcher.TaskExecutors    : Discarding 1 tasks of TaskBatchingWorker-target_eureka02-4 due to permanent error

今天在做eureka服务集群的时候启动项设置serviceUrl:defaultZone的时候请求路径没有以/eureka结尾,导致踩了这个大坑,但是也理解更深了。解决方案就是服务端defaultZone一定要以/eureka作为项目路径,而且不要设置上下文路径。

注意事项

第一:不要设置context-path,即使设置也只能写个/

第二:uri一定要以/eureka结尾

        这个问题其实是路径没写对,出现的具体情况在做eureka服务端集群的时候,关掉一个服务端,另一个服务端就会出现这个提示,虽然不影响使用,但一直打印挺糟心。一定要确保每个服务端defaultZone的uri最后是/eureka。我的理解是eureka默认以/eureka为context-path,他在服务注册的时候默认会去请求以/eureka为结尾的接口,但是如果是第一次同时启动,会以自己写的路径去请求,即没有以/eureka结尾的请求,所以这个时候没有打印错误。当一个服务挂掉的时候,他的心跳检测定时任务就会给你的路径拼接上/eureka,所以这个时候的请求就出现循环打印日志里的404了。如果真是这样这个设计真是够坑的,不知道我说的对不对,望大佬指教。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值