我无法理解如何在非本地使用 ActiveMQ。
假设我有2台机器,需要交换一些消息。
在机器上,我启动 ActiveMQ 代理:
> ~/bin/activemq
并使用类似的东西:
javax.naming.Context ctx = new InitialContext();
TopicConnectionFactory factory = (TopicConnectionFactory)ctx.lookup("connectionFactory");
conn = factory.createTopicConnection();
TopicSession session = conn.createTopicSession(false,TopicSession.AUTO_ACKNOWLEDGE);
Topic topic = null;
try{
topic = (Topic)ctx.lookup("MyTopic");
System.out.println("MyTopic was found");
}catch(NameNotFoundException nnfe){
topic = session.createTopic("MyTopic");
System.out.println("MyTopic was created");
}
TextMessage textMessage = session.createTextMessage();
TopicPublisher publisher = session.createPublisher(topic);
conn.start();
textMessage.setText("My topic message number");
publisher.publish(textMessage);
System.out.println("sendMessage2topic");
我在 jndi.properties 中的位置:
java.naming.factory.initial = org.apache.activemq.jndi.ActiveMQInitialContextFactory
java.naming.provider.url = tcp://localhost:61616
但是我应该在另一台机器上创建什么来订阅这个主题呢?我是否应该在第二台机器上创建第二个本地 ActiveMQ 代理,以及如何订阅第一台机器上的远程主题???
最佳答案
localhost:61616 将使 activeMQ 仅在 loopback(127.0.0.1) 接口(interface)上监听。使用机器的 IP 或 0.0.0.0 代替。
关于java - 怎么能不在本地使用activemq呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2318439/