ActiveMQ Topic 发布订阅

Publish:


 
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 {
	
	//1连接工厂
	private ConnectionFactory connectionFactory;
	//2连接对象
	private Connection connection;
	//3Session对象
	private Session session;
	//4生产者
	private MessageProducer messageProducer;
	
	public Publish(){
		try {
			this.connectionFactory = 
					new ActiveMQConnectionFactory(
							"admin", 
							"1234", 
							"tcp://localhost:61616");
			this.connection = connectionFactory.createConnection();
			this.connection.start();
			this.session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);
			this.messageProducer = session.createProducer(null);
		} catch (JMSException e) {
			e.printStackTrace();
		}
	}
	
	
	public Session getSession(){
		return this.session;
	}
	
	public static void main(String[] args) throws Exception {
		Publish p = new Publish();
		p.sender1();
	}
	
	public void sender1() throws Exception{		
		Destination destination = this.session.createTopic("topic1");
		TextMessage textMessage = session.createTextMessage("我是内容");
		messageProducer.send(destination,textMessage);				
		if(connection!=null){
			connection.close();
		}
	}
	
	
	
	
	
	
	
	
	
}

Consumer1:
 



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 Consumer1 {

   public final String SELECTOR_0 = "age > 25";
	public final String SELECTOR_1 = "color = 'blue'";
	public final String SELECTOR_2 = "color = 'blue' and sal > 2000";
	public final String SELECTOR_3 = "receiver = 'A'";

	// 1.连接工厂
   private ConnectionFactory connectionFactory;
   // 2.连接对象
   private Connection connection;
   // Session对象
   private Session session;
   // 4.消费者
   private MessageConsumer messageConsumer;
   // 5.目标地址
   private Destination destination;
   //构造器中初始化四个对象
   public Consumer1() {
       this.connectionFactory = new ActiveMQConnectionFactory(
               "admin",
               "1234",
               "tcp://localhost:61616"
       );
       try {
           this.connection = this.connectionFactory.createConnection();
           this.connection.start();
           this.session = this.connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);
           this.destination = this.session.createTopic("topic1");
           //消费者
           this.messageConsumer = this.session.createConsumer(this.destination);

       } catch (JMSException e) {
           e.printStackTrace();
       }
   }

   public void receiver() {
       try {
           this.messageConsumer.setMessageListener(new MessageListener() {
               @Override
               public void onMessage(Message message) {
                   if(message instanceof  TextMessage){
                	   TextMessage m = (TextMessage) message;
                       try {
                    	   System.out.println("c1收到消息:--------------------");
                    	   System.out.println(m.getText());
                       } catch (Exception e) {
                           e.printStackTrace();
                       }
                   }
               }
           });
       } catch (JMSException e) {
           e.printStackTrace();
       }
   }

   public static void main(String[] args) {
       Consumer1 consumer = new Consumer1();
       consumer.receiver();
   }
	
}

Consumer2:


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 Consumer2 {

   public final String SELECTOR_0 = "age > 25";
	public final String SELECTOR_1 = "color = 'blue'";
	public final String SELECTOR_2 = "color = 'blue' and sal > 2000";
	public final String SELECTOR_3 = "receiver = 'A'";

	// 1.连接工厂
   private ConnectionFactory connectionFactory;
   // 2.连接对象
   private Connection connection;
   // Session对象
   private Session session;
   // 4.消费者
   private MessageConsumer messageConsumer;
   // 5.目标地址
   private Destination destination;
   //构造器中初始化四个对象
   public Consumer2() {
       this.connectionFactory = new ActiveMQConnectionFactory(
               "admin",
               "1234",
               "tcp://localhost:61616"
       );
       try {
           this.connection = this.connectionFactory.createConnection();
           this.connection.start();
           this.session = this.connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);
           this.destination = this.session.createTopic("topic1");
           //消费者
           this.messageConsumer = this.session.createConsumer(this.destination);

       } catch (JMSException e) {
           e.printStackTrace();
       }
   }

   public void receiver() {
       try {
           this.messageConsumer.setMessageListener(new MessageListener() {
               @Override
               public void onMessage(Message message) {
                   if(message instanceof  TextMessage){
                	   TextMessage m = (TextMessage) message;
                       try {
                    	   System.out.println("c2收到消息:--------------------");
                    	   System.out.println(m.getText());
                       } catch (Exception e) {
                           e.printStackTrace();
                       }
                   }
               }
           });
       } catch (JMSException e) {
           e.printStackTrace();
       }
   }

   public static void main(String[] args) {
       Consumer2 consumer = new Consumer2();
       consumer.receiver();
   }
	
}

猜你喜欢

转载自blog.csdn.net/Leon_Jinhai_Sun/article/details/85212216
今日推荐