zoukankan      html  css  js  c++  java
  • ACTIVEMQ 发布与订阅

    发布消息:

    代码
    import javax.jms.Connection;
    import javax.jms.JMSException;
    import javax.jms.Message;
    import javax.jms.MessageConsumer;
    import javax.jms.MessageListener;
    import javax.jms.MessageProducer;
    import javax.jms.Session;
    import javax.jms.TextMessage;
    import javax.jms.Topic;

    import org.apache.activemq.ActiveMQConnectionFactory;
    import org.apache.activemq.broker.BrokerService;
    import org.apache.activemq.command.ActiveMQTopic;

    public class TopicTest {

    public static void main(String[] args) throws Exception {
            ActiveMQConnectionFactory factory 
    = new ActiveMQConnectionFactory("tcp://localhost:61616");
            Connection connection 
    = factory.createConnection();
            connection.start();
            
            
            
            
    //创建一个Topic
            Topic topic= new ActiveMQTopic("testTopic");
            Session session 
    = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
            

            
    //创建一个生产者,然后发送多个消息。
            MessageProducer producer = session.createProducer(topic);
            
    for(int i=0; i<10; i++){
                producer.send(session.createTextMessage(
    "zyg:" + i));
            }
            
        }
    }

    订阅消息

    代码
    import javax.jms.Connection;
    import javax.jms.JMSException;
    import javax.jms.Message;
    import javax.jms.MessageConsumer;
    import javax.jms.MessageListener;
    import javax.jms.MessageProducer;
    import javax.jms.Session;
    import javax.jms.TextMessage;
    import javax.jms.Topic;

    import org.apache.activemq.ActiveMQConnectionFactory;
    import org.apache.activemq.broker.BrokerService;
    import org.apache.activemq.command.ActiveMQTopic;


    public class TestComsumer {
        
    public static void main(String[] args) throws Exception {
            ActiveMQConnectionFactory factory 
    = new ActiveMQConnectionFactory("tcp://localhost:61616");
            Connection connection 
    = factory.createConnection();
            connection.start();
           
            
            
            
    //创建一个Topic
            Topic topic= new ActiveMQTopic("testTopic");
            Session session 
    = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
            
            
    //注册消费者1
            MessageConsumer comsumer1 = session.createConsumer(topic);
            comsumer1.setMessageListener(
    new MessageListener(){
                
    public void onMessage(Message m) {
                    
    try {
                        System.out.println(
    "Consumer1 get " + ((TextMessage)m).getText());
                    } 
    catch (JMSException e) {
                        e.printStackTrace();
                    }
                }
            });
            
    //注册消费者2
            MessageConsumer comsumer2 = session.createConsumer(topic);
            comsumer2.setMessageListener(
    new MessageListener(){
                
    public void onMessage(Message m) {
                    
    try {
                        System.out.println(
    "Consumer2 get " + ((TextMessage)m).getText());
                    } 
    catch (JMSException e) {
                        e.printStackTrace();
                    }
                }
            });
            
    //创建一个生产者,然后发送多个消息。
           
        }

    }
  • 相关阅读:
    mybatis使用*号查询数据丢失问题
    设计四个线程,其中两个线程每次对j增加1,另外两个线程对j每次减1,写出程序
    用代码实现以下程序:篮子中有10个玩具,每60秒取出3个,同时每40秒向篮子中放入1个,不断重复上述动作,当篮子中剩余玩具不足3个是,程序结束
    伽马分布的性质
    三角函数公式
    微分和积分的中值定理
    一些需要理解掌握的知识点
    一阶微分不变性
    泰勒展开和麦克劳林级数
    重要极限(1+1/n)的n次方
  • 原文地址:https://www.cnblogs.com/yg_zhang/p/1847531.html
Copyright © 2011-2022 走看看