调用一个微服务的时候报告如下错误:
2019-02-25 11:56:44.280 WARN 18556 --- [ntloop-thread-0] o.a.s.s.c.h.ServiceRegistryClientImpl : failed to findInstances: {"errorCode":"400012","errorMessage":"Micro-service does not exist","detail":"Consumer[6e2978ec5f69fd5e79c83a2a2a4c96cc8ed2d760][/SpringCloud-ServiceComb/gateway/1.0.0] find provider[/SpringCloud-ServiceComb/consumer/0.0.0+] failed, provider does not exist."} 2019-02-25 11:56:44.280 INFO 18556 --- [ntloop-thread-4] o.a.s.s.consumer.MicroserviceManager : remove microservice, appId=SpringCloud-ServiceComb, microserviceName=consumer. 2019-02-25 11:56:44.281 INFO 18556 --- [ntloop-thread-4] o.a.s.s.consumer.MicroserviceVersions : create MicroserviceVersionRule, appId=SpringCloud-ServiceComb, microserviceName=consumer, versionRule=0.0.0+. 2019-02-25 11:56:47.845 ERROR 18556 --- [ntloop-thread-4] : unexpected failure happened org.apache.servicecomb.foundation.common.exceptions.ServiceCombException: Failed to find latest MicroserviceVersionMeta, appId=SpringCloud-ServiceComb, microserviceName=consumer, versionRule=0.0.0+. at ~[edge-core-1.1.0.B036.jar:1.1.0.B036] at ~[edge-core-1.1.0.B036.jar:1.1.0.B036] at ~[edge-core-1.1.0.B036.jar:1.1.0.B036] at ~[vertx-web-3.5.3.jar:3.5.3] at ~[vertx-web-3.5.3.jar:3.5.3] at ~[vertx-web-3.5.3.jar:3.5.3] at$BHandler.doEnd(RestBodyHandler.java:270) ~[transport-rest-vertx-1.1.0.B036.jar:1.1.0.B036] at
这种情况,通常都是找不到被调用者的原因。 具体排查思路如下:
1. 使用服务中心前台界面,查看一下consumer的实例是否存在,并且和provider的APPLICATION_ID, environment是否一致。
2. 检查调用者、被调用的APPLICATION_ID, environment等名字是否拼写错误。