Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2.1版本 重启的时候有可能会导致 no schema defined #4295

Open
dfdfqwqw opened this issue Apr 11, 2024 · 8 comments
Open

2.1版本 重启的时候有可能会导致 no schema defined #4295

dfdfqwqw opened this issue Apr 11, 2024 · 8 comments

Comments

@dfdfqwqw
Copy link

问题现象:
服务重启成功后,调RPC接口会有这个报错
image

初步分析:
异常时,MicroserviceMeta中对象如下
image
正常时,MicroserviceMeta对比
image

怀疑是RestEngineSchemaListener 没有正常接收CreateMicroserviceVersionEvent 事件完成处理,求问有没有避免措施,或者其他解决方案

@liubao68
Copy link
Contributor

问题的过程是怎么样的?重启的时候,这个服务调用其他服务失败还是其他服务调用它失败? 是一直失败还是只有一次失败,后续成功?
失败的情况,日志里面有没有异常?看看更新实例(日志搜索find instance)的过程中是不是有异常。

@dfdfqwqw
Copy link
Author

问题的过程是怎么样的?重启的时候,这个服务调用其他服务失败还是其他服务调用它失败? 是一直失败还是只有一次失败,后续成功? 失败的情况,日志里面有没有异常?看看更新实例(日志搜索find instance)的过程中是不是有异常。

服务重启后,进行接口调用,是本服务调用其他服务,一直失败后续不会恢复。

没有搜到很明显的异常

@dfdfqwqw
Copy link
Author

dfdfqwqw commented Apr 11, 2024

补充 日志现象 异常时不打印红框中服务契约的添加,但是看日志中有成功拉取到契约的日志
image

@dfdfqwqw
Copy link
Author

image
有个疑问 这个注册可以往前推吗

@dfdfqwqw
Copy link
Author

dfdfqwqw commented Apr 12, 2024

已定位 是因为 CreateMicroserviceVersionEvent 事件在RestEngineSchemaListener注册 之前触发 导致没有触发onCreateMicroserviceVersion方法
image

@dfdfqwqw
Copy link
Author

初步想法 是把 RestEngineSchemaListener 提前到onBeforeHandler 来注册 求分析 这样改动是否会引入其他问题

@yanghao605
Copy link
Contributor

这个Listener使用通过spi加载的,在初始化SCBEngine的时候,应该就已经加载成功了,而这个时候按理来说,消费端的微服务状态还不为up,消费端是无法正常发起调用的,不应该存在服务端加载契约的说法

@yanghao605
Copy link
Contributor

2.1的消费端好像没有这个判断,#2362 #2363 看看这两个修改,在2.1加上是不是就不会出现这个问题了?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants