servicecomb-java-chassis icon indicating copy to clipboard operation
servicecomb-java-chassis copied to clipboard

一个微服务实例注册了,但是schema还没注册完, 另外一个微服务实例开始注册,然后注册结束。 这个时候服务发起了调用, 导致获取不到完整的服务schema。

Open develpoerX opened this issue 4 years ago • 7 comments

develpoerX avatar Dec 06 '21 12:12 develpoerX

经验证:当一个微服务A的schema还没注册完时,另一个微服务B去调用A的任意接口(指注册上的和没注册上的)都会报如下错误 unexpected error operation=PRODUCER rest consumer.ConsumerController.sayHello, message=cause:InvocationTargetException,message:null;cause:IllegalStateException,message:Probably invoke a service before it is registered, or no instance found for it, appId=xxxxxxx, name=xxxxx, versionRule=xxxxxx. 验证过程: 在provider微服务项目中添加两个schema分别为provider1和provder2,然后在程序中打上断点进行调试,当控制台给出其中一个schema已经注册成功之后(控制台中有相应提示,也可以去微服务引擎页面查看相应的服务契约)启动consumer微服务项目 ,然后调用provider接口

lbc97 avatar Dec 07 '21 10:12 lbc97

非bug问题,目前新版本的SDK,在查询到schema的summary为空时,会触发出册操作。因此,即使第一个微服务实例注册到了一半,第二个微服务实例会继续注册完毕。consumer拉取到的也是全量的schema。

develpoerX avatar Dec 09 '21 09:12 develpoerX

mark

HoyerIsAlexander avatar Jan 13 '22 08:01 HoyerIsAlexander

@HoyerIsAlexander 你也发现了这个问题吗? 我们一直没重现问题。 怀疑点都排除了。

liubao68 avatar Jan 14 '22 02:01 liubao68

@HoyerIsAlexander 你也发现了这个问题吗? 我们一直没重现问题。 怀疑点都排除了。

我们就是从1.3升级到2.x之后,有个服务大概有100个左右schema每次升级完,通过edge调用都会有404的问题,跟这个现象差不多,其他没有使用edge的服务不存在这个问题

HoyerIsAlexander avatar Jan 28 '22 06:01 HoyerIsAlexander

@HoyerIsAlexander 你也发现了这个问题吗? 我们一直没重现问题。 怀疑点都排除了。

我们就是从1.3升级到2.x之后,有个服务大概有100个左右schema每次升级完,通过edge调用都会有404的问题,跟这个现象差不多,其他没有使用edge的服务不存在这个问题

我记得SC有100个schema数量限制,当超出100后,就注册不上。你可以进一步验证一下,是不是所有接口都调用出现404?

develpoerX avatar Feb 07 '22 01:02 develpoerX

@HoyerIsAlexander 你也发现了这个问题吗? 我们一直没重现问题。 怀疑点都排除了。

我们就是从1.3升级到2.x之后,有个服务大概有100个左右schema每次升级完,通过edge调用都会有404的问题,跟这个现象差不多,其他没有使用edge的服务不存在这个问题

我记得SC有100个schema数量限制,当超出100后,就注册不上。你可以进一步验证一下,是不是所有接口都调用出现404?

就这个错误no instance found for it, appId=xxxxxxx, name=xxxxx,只要转到这个服务的就是404

HoyerIsAlexander avatar Feb 14 '22 09:02 HoyerIsAlexander