我希望运行一个实验,其中发布者失去与代理的连接,然后将消息排入其自己的队列中,然后当它重新获得连接时,它会将所有排队的消息发送给代理。我怎么能这样做,因为如果我调用紧密连接,我就不能再发送(引发异常)。我能想到的一个技巧是使用两个经纪人的网络,并通过打破两个经纪人之间的联系来模拟上述情况。我可以使用API调用来执行上述操作吗?
这非常像facebook messenger或whatsapp充当发布者并在我们离线时将我们的发送消息排入队列并在我们连接后发送它们。
答案 0 :(得分:0)
您可以使用大量解决方案来断开连接以进行测试,这里有一个非全面的列表:
制作一个脚本,可以设置/取消设置阻止连接端口的环境中的防火墙规则
如果你正在使用VM,你可以暂停/恢复运行Activemq的那个,你甚至可以使用诸如vagrant(vagrant suspend,然后vagrant up)等工具自动化它
手动调整访问activemq jmx
开发一个能够按需删除连接的activemq插件(或者可能有一个?)
现在,为了获得您希望获得的行为,有两种选择:
1)确保您的连接是故障转移,以便重新建立,并将消息存储在磁盘上,然后再与生产者一起发送。
2)生成应用程序中嵌入的本地代理,并将此连接到远程代理。