问题描述
我们有以下问题:
先决条件:
- Quarkus应用程序收到WebSockets连接
- Quarkus应用程序正在pod(Kubernetes)中运行
- WebSockets连接正在通过2个负载均衡器(elb,Nginx)的层,但是我们确保增加了空闲连接超时(300s)
- Websocket服务器必须等待连接关闭才能关闭
- 服务器的客户端没有重新连接机制
- 我们有一个关闭挂钩来等待WebSockets会话关闭
吊舱即将关闭的情况:
关闭挂钩:
void onStop(@Observes final ShutdownEvent ev) {
long numActiveSessions = getActiveSessions();
while (numActiveSessions > 0) {
try {
TimeUnit.SECONDS.sleep(waitforfinished);
} catch (InterruptedException e) {
return;
}
numActiveSessions = getActiveSessions();
}
}
有更好的方法吗?为什么我们收到GOING_AWAY原因? quarku在收到SIGTERM时会关闭WebSocket吗?
更新: 示例项目:https://github.com/pedrolopix/quarkus-websockets-example
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)