最近在学习spring cloud,由于学习资料具有普遍性,部分应个人原因导致的小细节问题,往往很难找到解决的办法。这特别记录一下自己遇到的一些问题。
一、eureka-server加入security做基础访问控制报错Batch update failure with HTTP status code 401; discarding 1 replication tasks
详细错误如下:
场景交代:
eureka-server程序加入security后,启动程序日志是OK的,在没有其他eureka客户端访问的情况下会定时打印出“Running the evict task with compensationTime 0ms”这样的提示。当启动一个客户端连接eureka-server后,eureka-server日志中就多出了截图中的错误,而且会在每次eureka的定时任务线程中都会抛出错误提示日志。
看错误log,http的状态码是401,虽然明显是权限问题导致的,我检查eureka-client程序的配置
可以看到是配置了访问eureka-server的用户名和密码的,由于客户端功能和配置都相当简单,检查几遍后,并未看出任何问题,说明eureka客户端权限是正常的。于是怀疑在eureka-server端出了问题。
检查了一下服务端配置,发现在eureka-server中eureka.client.serviceUrl.defaultZone配置的是这样的
是不是这里少了访问用户名和密码导致的呢,于是我们在连接中增加了用户名和密码,如下
重新启动eureka-server和eureka-client,问题解决,不在报401的错误了。