Java ActiveMQ代理能够处理的最大主题数是多少?

Java ActiveMQ代理能够处理的最大主题数是多少?,java,performance,jms,activemq,Java,Performance,Jms,Activemq,我有以下一般性问题:给定N个信息源,每个源有M种可能的信息类型,在ActiveMQ中处理主题层次结构的最有效方法是什么? 通常N可以是100到10000s,而M应该是10 选项1 有这样的等级制度 资料来源1* 资料来源2* 而一个聪明的消费者(在应用程序端)只会删除不需要的信息类型 选项2 有这样的等级制度 资料来源1.1 资料来源1.2 资料来源1.3 资料来源2.1 资料来源2.2 资料来源2.3 一个愚蠢的消费者接受每一条信息 =======================

我有以下一般性问题:给定N个信息源,每个源有M种可能的信息类型,在ActiveMQ中处理主题层次结构的最有效方法是什么? 通常N可以是100到10000s,而M应该是10

选项1

有这样的等级制度

  • 资料来源1*
  • 资料来源2*
而一个聪明的消费者(在应用程序端)只会删除不需要的信息类型

选项2

有这样的等级制度

  • 资料来源1.1
  • 资料来源1.2
  • 资料来源1.3
  • 资料来源2.1
  • 资料来源2.2
  • 资料来源2.3
一个愚蠢的消费者接受每一条信息

=================================

选项1可能允许更多的资源,但在用户端需要更多的工作(以及网络上的更多流量),而选项2应该在网络流量(以及希望的性能)方面更有效,但在代理资源消耗方面可能会更重

最好的选择是什么

多谢各位


cghersi

将多个源发布到同一主题没有什么错。通常,将主题和队列保持在可管理的级别是一个好主意

我会选择主题类型1,类型2,…,类型10

您可以使用字符串属性将元数据附加到包含其他信息的已发布邮件。这样一来,消费者可以只订阅他们真正想要的数据,使用的数据可能包括数据源、信息类型、日期、优先级等等

MessageConsumer consumer = session.createConsumer(topic, "source = 'EU-market'");
如果主题的数量是1000的10倍,那么每个客户端都必须打开多个主题的侦听器才能获得所有信息。通常,侦听器需要线程,而线程需要很好的堆栈分配。最好让客户机由选择器来决定


这并没有回答主题的最大限制是什么的问题。主题和队列增加了代理的开销。它们注册为JMX MBean,并显示在web控制台gui中。它们还可以分配内部线程和内存资源。为了弄清楚一些主题是否有效,最好使用打算运行它的设置来测试它。您的理解可能会有所不同

多个来源发布到同一主题没有什么错。通常,将主题和队列保持在可管理的级别是一个好主意

我会选择主题类型1,类型2,…,类型10

您可以使用字符串属性将元数据附加到包含其他信息的已发布邮件。这样一来,消费者可以只订阅他们真正想要的数据,使用的数据可能包括数据源、信息类型、日期、优先级等等

MessageConsumer consumer = session.createConsumer(topic, "source = 'EU-market'");
如果主题的数量是1000的10倍,那么每个客户端都必须打开多个主题的侦听器才能获得所有信息。通常,侦听器需要线程,而线程需要很好的堆栈分配。最好让客户机由选择器来决定

这并没有回答主题的最大限制是什么的问题。主题和队列增加了代理的开销。它们注册为JMX MBean,并显示在web控制台gui中。它们还可以分配内部线程和内存资源。为了弄清楚一些主题是否有效,最好使用打算运行它的设置来测试它。你的国籍可能不同