使用Springcloud 经常会服务之间相互调用,使用OpenFigen做服务之间通信、负载均衡。OpenFigen本身集成得有Ribbon,世纪的负载均衡功能还是Ribbon发挥的作用,但是我们常常不小心会将ribbon.eureka.enabled=false;这样就会导致ribbon失效。报错信息对于刚学习的同学可能就无法很快的找到问题的原因:
错误信息: Load balancer does not have available server for client: CLOUD-PAYMENT-SERVICE。从错误信息来开就是找不了服务明称为CLOUD-PAYMENT-SERVICE的服务。打开注册中的界面这个服务有正常的注册上去的。
{NFLoadBalancer:name=CLOUD-PAYMENT-SERVICE,current list of Servers=[],Load balancer stats=Zone stats: {},Server stats: 在报错信息的上一句日志会看到去这个服务列表为null,一开始肯定会以为是该服务没有注册到注册中的注册表中。也不知道那根弦出问题会把ribbon.eureka.enabled设为false。出现这个错误的原因有很多情况,所以很难精确找到合适的文章经验。