topic send
package org.arrow.amq.test;
import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.command.ActiveMQTopic;
import javax.jms.*;
/**
* 订阅发布
*/
public class TopicSender {
public static void main(String[] args) throws JMSException {
ConnectionFactory factory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER, ActiveMQConnection.DEFAULT_PASSWORD, "tcp://127.0.0.1:61616");
Connection connection = factory.createConnection();
connection.start();
Session session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);
Topic topic = session.createTopic("TestTopic1");
MessageProducer producer = session.createProducer(topic);
producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
for(int i = 0 ; i < 10; i++){
producer.send(session.createObjectMessage("topic hello world..." + i));
}
System.out.println("sent topic...");
session.close();
connection.close();
}
}
topic receiver
package org.arrow.amq.test;
import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
public class TopicReceiver {
public static void main(String[] args) throws JMSException {
ConnectionFactory factory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER, ActiveMQConnection.DEFAULT_PASSWORD, "tcp://127.0.0.1:61616");
Connection connection = factory.createConnection();
connection.start();
Session session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);
Topic topic = session.createTopic("TestTopic1");
MessageConsumer consumer1 = session.createConsumer(topic);
MessageConsumer consumer2 = session.createConsumer(topic);
consumer1.setMessageListener(new MessageListener() {
@Override
public void onMessage(Message message) {
Object object = null;
try {
object = ((ObjectMessage) message).getObject();
} catch (JMSException e) {
e.printStackTrace();
}
System.out.println("topic Receive2-1 : " + (String)object);
}
});
consumer2.setMessageListener(new MessageListener() {
@Override
public void onMessage(Message message) {
Object object = null;
try {
object = ((ObjectMessage) message).getObject();
} catch (JMSException e) {
e.printStackTrace();
}
System.out.println("topic Receive2-2 : " + (String)object);
}
});
}
}