ActiveMQ的publish/subscribe

来源:互联网 发布:删除数据库 编辑:程序博客网 时间:2024/04/28 23:21

Publish/Subscribe(发布/订阅模式):1对多


package org.jms.demo.publish_subscribe;import javax.jms.Connection;import javax.jms.ConnectionFactory;import javax.jms.Destination;import javax.jms.JMSException;import javax.jms.MessageProducer;import javax.jms.Session;import javax.jms.TextMessage;import org.apache.activemq.ActiveMQConnectionFactory;public class Publish {private static final String brokeURL = "tcp://localhost:61616";private ConnectionFactory connectionFactory;private Connection connection;private Destination destination;private MessageProducer producer;private Session session;public Publish() throws JMSException {connectionFactory = new ActiveMQConnectionFactory(brokeURL);connection = connectionFactory.createConnection();connection.start();session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);destination = session.createTopic("topic");producer = session.createProducer(destination);}public void publichMessage() throws JMSException {TextMessage textMessage = this.session.createTextMessage("Topic Message");this.producer.send(destination, textMessage);}public static void main(String[] args) throws JMSException {Publish publish  = new Publish();publish.publichMessage();}}
订阅1:、

package org.jms.demo.publish_subscribe;import javax.jms.Connection;import javax.jms.ConnectionFactory;import javax.jms.Destination;import javax.jms.JMSException;import javax.jms.Message;import javax.jms.MessageConsumer;import javax.jms.MessageListener;import javax.jms.Session;import javax.jms.TextMessage;import org.apache.activemq.ActiveMQConnectionFactory;public class Subscribe1 {private static final String brokeURL = "tcp://localhost:61616";private ConnectionFactory connectionFactory;private Connection connection;private Destination destination;private MessageConsumer consumer;private Session session;public Subscribe1() throws JMSException {connectionFactory = new ActiveMQConnectionFactory(brokeURL);connection = connectionFactory.createConnection();connection.start();session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);destination = session.createTopic("topic");consumer = session.createConsumer(destination);consumer.setMessageListener(new TopicListener());}final class TopicListener implements MessageListener {@Overridepublic void onMessage(Message message) {if (message instanceof TextMessage) {try {System.out.println(((TextMessage) message).getText());} catch (JMSException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}public static void main(String[] args) throws JMSException {Subscribe1 publish = new Subscribe1();}}
订阅2:

package org.jms.demo.publish_subscribe;import javax.jms.Connection;import javax.jms.ConnectionFactory;import javax.jms.Destination;import javax.jms.JMSException;import javax.jms.Message;import javax.jms.MessageConsumer;import javax.jms.MessageListener;import javax.jms.Session;import javax.jms.TextMessage;import org.apache.activemq.ActiveMQConnectionFactory;import org.jms.demo.publish_subscribe.Subscribe1.TopicListener;public class Subscribe2 {private static final String brokeURL = "tcp://localhost:61616";private ConnectionFactory connectionFactory;private Connection connection;private Destination destination;private MessageConsumer consumer;private Session session;public Subscribe2() throws JMSException {connectionFactory = new ActiveMQConnectionFactory(brokeURL);connection = connectionFactory.createConnection();connection.start();session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);destination = session.createTopic("topic");consumer = session.createConsumer(destination);consumer.setMessageListener(new TopicListener());}final class TopicListener implements MessageListener {@Overridepublic void onMessage(Message message) {if (message instanceof TextMessage) {try {System.out.println(((TextMessage) message).getText());} catch (JMSException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}public static void main(String[] args) throws JMSException {Subscribe2 publish = new Subscribe2();}}




0 0