You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
Service Center 2.1.0 版本的实例注销接口失效, 导致Java-Chassis框架开发的微服务做完优雅下线后, 实例还能从sc中查询得到. 并且如果将微服务的心跳时间间隔调短, sc的心跳失败自动下线实例的机制并不会对应缩短下线实例的时间, 导致业务仍然需要等待约 120 秒才会看到实例记录消失.(等待120秒下线心跳一直失败的实例是默认配置下的行为)
Describe the bug
Service Center 2.1.0 版本的实例注销接口失效, 导致Java-Chassis框架开发的微服务做完优雅下线后, 实例还能从sc中查询得到. 并且如果将微服务的心跳时间间隔调短, sc的心跳失败自动下线实例的机制并不会对应缩短下线实例的时间, 导致业务仍然需要等待约 120 秒才会看到实例记录消失.(等待120秒下线心跳一直失败的实例是默认配置下的行为)
To Reproduce
Expected behavior
预期在 Java-Chassis 打出日志表示实例已注销之后, 就无法从 sc 查到对应的实例, 但是实际上实例消失的时间要远远晚于实例注销的时间点. (从 sc-frontend 页面上看也是这样)
问题现象1:
Java-Chassis框架注销实例记录的日志显示为 17:43:47, 但是我使用shell脚本编写一个 while 循环, 每秒钟查询一次这个实例, 一直等到 17:45:44 实例才消失, 说明 Java-Chassis 调用实例注销接口并没有效果.
问题现象2:
注意看截图查出来的实例记录数据, 我配置了 healthCheck.interval = 5, healthCheck.time = 3, 理论上讲最迟心跳失败 20 秒后实例应该就会由于连续心跳失败而下线, 但实际上 sc 等了 118 秒才下线实例, 这个结果接近于默认的心跳配置(healthCheck.interval = 30, healthCheck.time = 3), 也就是似乎Java-Chassis配置了心跳失败间隔也没生效?
Java-Chassis框架的优雅停机日志:
sc的接口查询记录(使用脚本
while [[ true ]]; do date && curl 'http://localhost:30100/v4/default/registry/instances?appId=nuwa-sdk-benchmark&serviceName=edge&global=true&version=0.0.0.0%2B&env=development' && echo '' && sleep 1 ; done
):Platform And Runtime (please complete the following information):
使用 2.1.0 版本 Service Center, 使用 Java-Chassis 1.3.11 开发微服务.
SC版本:
Additional context
我尝试过维持 Java-Chassis 微服务一直运行, 然后额外调用 sc 的实例注销接口, 发现 Java-Chassis 框架会报心跳失败, 没有实例. 而且查询实例
日志如下:
心跳接口能报失败, 但是用v4.yaml接口里的
find
接口却能查到实例:https://github.com/apache/servicecomb-service-center/blob/master/docs/openapi/v4.yaml#L1165
就像是 sc 的接口内部数据不一致一样.
The text was updated successfully, but these errors were encountered: