理解Apache ActiveMQ

3
我对Apache ActiveMQ的功能感到困惑。
我从这个链接下载了ActiveMQ。因此,我在Windows 7环境下使用它:我启动bin/activemq.bat,然后它就工作了。
我的问题是:这是否意味着我在我的机器上启动了一个服务器? 当我初始化ActiveMQConnectionFactory时,代理URL为tcp://localhost:61616。但如果我希望我的机器作为服务器并且另一台机器连接到我的服务器呢?
2个回答

7

是的,您可以将主要框作为服务器使用,并在其他框上运行消费者/订阅者(这些框将需要连接到服务器-您需要指定服务器主机名和端口以建立连接)-一旦就绪,服务器上的消息(主题或队列)可以被客户端消费。

如果您只有一个生产者和一个消费者,则可以考虑使用队列-如果您有多个消费者/订阅者,则可以考虑设置一个主题,消费者将订阅该主题。根据需要向主题/队列插入消息。

您可以在代码中或首选在配置文件中指定服务器信息。

有关拓扑结构的参考: http://activemq.apache.org/topologies.html

此外,您可以根据用例选择是否持久化消息。 Kaha DB是首选路线(特别是如果性能是关注重点)。

有用的示例:

http://sujitpal.blogspot.com/2007/12/jms-patterns-with-activemq.html

http://vvratha.blogspot.com/2012/05/java-client-to-sendreceive-messages-for.html

希望它有所帮助。

实际上,我已经在一台机器上使用“localhost”实现了发布者/订阅者。但是我现在在使用两台不同的机器时遇到了困难。对于服务器(或代理)端,我应该启动服务器(activemq.bat),但是在客户端,我不需要启动activemq.bat,对吗?在服务器端的配置文件(activemq.xml)中应该是什么IP地址?localhost还是我的实际IP地址? - Cacheing
您可以在“服务器”上运行代理程序 - 对于消费者,您只需要在客户端计算机上运行项目时拥有activemq jar文件(和log4j / slf4j jar文件) - 您需要指定要连接的服务器/代理程序 - 使用nslookup或ipconfig确认您正在运行代理程序的主机名并指定该IP地址(以及代理程序正在侦听的端口 - 61616或其他)以便消费者(客户端)连接到代理程序。 - ali haider
非常感谢。现在它可以工作了。但我能问你另一个问题吗?默认情况下,activemq使用tcp协议。现在我正在配置它使用ssl。在一台机器上,没有任何区别。但是在我将其部署到两台机器后,速度变得非常慢。您有使用ssl的经验吗?这正常吗? - Cacheing
希望你已经得到了答案 - SSL使用会使事情变慢,但不会太明显 - 这取决于你如何配置,代码中没有任何导致减速的问题。 - ali haider
是的,我犯了一个错误,每发送一条消息都创建了一个连接,这浪费了大量时间在握手上。现在一个发布者只需要一个连接就能很好地工作了。 - Cacheing

-3

Apache ActiveMQ™ 是最受欢迎和强大的开源消息传递和集成模式服务器,它充当第三方服务器。

Apache ActiveMQ 快速、支持多种跨语言客户端和协议,配备易于使用的企业集成模式和许多高级功能,同时完全支持 JMS 1.1 和 J2EE 1.4。Apache ActiveMQ 发布在 Apache 2.0 许可下。

ActiveMQ 具有发送 100 MB 单个消息框架和同时维护 1000 个并发连接的能力,有关更多信息,请查看文档中的 activemq.xml。

有关 ActiveMQ 的更多信息,请点击此处


2
这是什么,某种广告吗? - Lefteris008

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接