Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 监视activemq主题_Java_Jms_Activemq - Fatal编程技术网

Java 监视activemq主题

Java 监视activemq主题,java,jms,activemq,Java,Jms,Activemq,我是ActiveMQ的初学者,所以我有一些问题。。。我将制作客户机-服务器应用程序,在服务器端使用activemq。所有客户端都发送消息,所以服务器上只有一个队列接收来自所有客户端的消息。据我所知,这不是问题 但还有一件事。。。在接收到消息后,服务器使用它并为每个传入消息形成应答消息,并且必须为所有客户端传递此消息,而不仅仅是为发送者。如果此时没有连接到某个客户端,当连接恢复时,客户端必须接收服务器在该客户端脱机期间发送的所有消息(无丢失) 启动LearnActiveMQ,我找到了解决方案:服务

我是ActiveMQ的初学者,所以我有一些问题。。。我将制作客户机-服务器应用程序,在服务器端使用activemq。所有客户端都发送消息,所以服务器上只有一个队列接收来自所有客户端的消息。据我所知,这不是问题

但还有一件事。。。在接收到消息后,服务器使用它并为每个传入消息形成应答消息,并且必须为所有客户端传递此消息,而不仅仅是为发送者。如果此时没有连接到某个客户端,当连接恢复时,客户端必须接收服务器在该客户端脱机期间发送的所有消息(无丢失)

启动LearnActiveMQ,我找到了解决方案:服务器上有一定数量的“输出队列”,这个数量等于客户端的数量。所以,在形成答案之后,服务器应用程序将遍历所有“输出队列”,并将消息放入每个队列中。在这个变体中,每个客户机都有唯一的ID,并侦听自己的队列(包含所有应答消息),所以我们可以在服务器上监视每个客户机接收的消息数(这是一个优势)。但是,我认为这不是最好的解决方案(队列中有很多相同的对象+在服务器端手动添加每个客户端都是缺点)


通过进一步了解activemq,我找到了主题和持久订阅者。看起来像是我需要解决的问题。但现在我的问题是——我如何监控主题消息?我试着在浏览器管理员工具中观看它,也在jconsole中,但我还看不到这些消息。可能吗?还有关于未来的问题——使用主题是解决这个问题的好主意吗?或者,如我所述,使用一定数量的输出队列可能会更好?

持久订阅可能是最好的选择。但是,正如您所经历的那样,您需要牺牲一点运营透明度

您可能还想看看虚拟目的地,它可能会解决您的问题