我有两个拥有相同Java应用程序('clients')的Tomcats,它们与单个MQ服务器进行通信
在一个客户端上,通信速度很快,但另一方面需要花费很多时间(> 13秒)。
在基础设施上唯一的区别是“慢客户端”与服务器位于不同的域上,而“快速客户端”位于同一个域上,据我所知,这应该会造成任何麻烦。
我用Wireshark两种方式嗅探了通信,我发现了一个区别:MQ服务器向慢速客户端发送一个额外的“ACK”,没有得到任何结果,等待13秒然后发送“ INITIAL DATA“实际开始工作的数据包,如下所示:
客户 - >服务器:IBM WebSphere SYN
服务器 - >客户端:IBM WebSphere SYN-ACK
客户 - >服务器:IBM WebSphere ACK
客户 - >服务器:初始数据
服务器 - >客户端:IBM WebSphere ACK //仅限慢客户端!!!
//等待13秒 - 仅限慢客户端。
服务器 - > client:INITIAL DATA //从这里开始,它在两个客户端上流动
注意:
1)与服务器的通信不是SSL,而是使用IP地址而不是DNS名称,因此不应解决问题。
2)我之前发表了类似的问题 - 这不是同一个案例!上次是BIOS over TCP问题。
答案 0 :(得分:0)
我们用来解决问题的方法是使用SimpleConnctionManager和长时间超时。
这是一个解决方法,但它有效。