Akka Websocket已完成,但客户端仍处于连接状态
(Akka 2.6.5,Akka http 10.1.12) 我有一个服务器/客户端websocket设置,在连接的每一侧使用Akka Websocket已完成,但客户端仍处于连接状态,websocket,akka,akka-stream,Websocket,Akka,Akka Stream,(Akka 2.6.5,Akka http 10.1.12) 我有一个服务器/客户端websocket设置,在连接的每一侧使用Source.queue和Sink.actorRef 事实证明,我的系统有一个相当严重和意外的缺陷(至少在生产中发现): Sink actor失败并终止(记录死信) Sink actor被发送流失败消息(在Sink.actorRefconstruction中配置)-这也记录在死信中,因为actor确实死了 我们有一个完整的web套接字流,对吗?这就是我们要说的(尽管注意标
Source.queue
和Sink.actorRef
事实证明,我的系统有一个相当严重和意外的缺陷(至少在生产中发现):
Sink.actorRef
construction中配置)-这也记录在死信中,因为actor确实死了- 如果我什么都不做->超时
- 如果我在等待完成之前将消息从客户端发送到服务器:
- 60秒后:
中止tcp连接…因为上游故障:TcpIdleTimeoutException
- 流发送到客户端接收器失败
在生产环境中,此关闭失败意味着websocket客户端等待数据长达12小时(当时它没有尝试发送消息)是否有任何日志记录指示Sink.actorRef失败的错误原因?您可以尝试启用日志记录,并配置
akka.actor.debug.lifecycle=on
(警告,将产生大量日志输出)以查看日志中是否包含有关actor失败的更多详细信息。@SeanGlover这是一个空指针。actor接收器肯定应该爆炸(良好),死信也记录了流失败消息(良好).但是为什么插座没有关上?它应该是对的?我的期望是它是一个bug,但也许我的期望是错的。