使用ActiveMQ和Java在多播环境中的代理之间进行通信

使用ActiveMQ和Java在多播环境中的代理之间进行通信,java,activemq,multicast,broker,Java,Activemq,Multicast,Broker,我无法让几个经纪人互相沟通。其他一切都按预期进行(包括生产者和消费者之间的沟通)。但我如何管理代理使用多播彼此对话 如有任何建议,将不胜感激 这是我的环境: 10个虚拟主机使用Ubuntu12和工作多播(ping测试) 在每台主机上使用ActiveMQ的Java应用程序 每个主机启动一个客户机(Java应用程序),每个客户机都能够管理一些代理,这些代理可以从一个常见的作业列表中获取一些作业(目前只运行“sleep”) 这些是代理设置 private String brokerUri; pri

我无法让几个经纪人互相沟通。其他一切都按预期进行(包括生产者和消费者之间的沟通)。但我如何管理代理使用多播彼此对话

如有任何建议,将不胜感激

这是我的环境:

  • 10个虚拟主机使用Ubuntu12和工作多播(ping测试)
  • 在每台主机上使用ActiveMQ的Java应用程序
  • 每个主机启动一个客户机(Java应用程序),每个客户机都能够管理一些代理,这些代理可以从一个常见的作业列表中获取一些作业(目前只运行“sleep”)
这些是代理设置

private String brokerUri;
private String brokerName;
private String brokerProtokol = "tcp://";;
private int    brokerPort = 9999;
private String networkConName = "Network";
private String transportConName = "Transport";
private BrokerService broker;
brokerUri = Inet4Address.getLocalHost().getHostAddress();
brokerName = Inet4Address.getLocalHost().getHostName();
这是截取的代码,可能不正确:

public void createBroker() throws UnknownHostException, InterruptedException{
try {
broker = new BrokerService();
TransportConnector transportCon = new TransportConnector();
NetworkConnector networkCon = new NetworkConnector(new URI("multicast://default")) {
};
broker.setBrokerName(brokerName);
transportCon.setUri(new URI(brokerProtokol+brokerUri+":"+brokerPort));
transportCon.setName(transportConName);
transportCon.setDiscoveryUri(new URI("multicast://default"));
final SystemUsage systemUsage = broker.getSystemUsage();
systemUsage.getMemoryUsage().setLimit(1024 * 1024 * 2); // 2 MB
systemUsage.getTempUsage().setLimit(1024L * 1024 * 1024 * 2); // 2 GB
systemUsage.getStoreUsage().setLimit(1024L * 1024 * 1024 * 2); // 2 GB
broker.setPersistent(true);
networkCon.setDuplex(true);
//                broker.setUseJmx(true);
broker.addConnector(transportCon);
broker.addNetworkConnector(networkCon);
broker.start();

你能解释一下“经纪人使用多播相互交谈”是什么意思吗?如果生产者和消费者之间的通信工作正常(当生产者向代理发送消息时,消费者就会收到消息),那么我不理解这个问题。