• ActiveMQ之发布、订阅使用


    maven依赖

         <dependencies>
    		<dependency>
    			<groupId>org.apache.activemq</groupId>
    			<artifactId>activemq-core</artifactId>
    			<version>5.7.0</version>
    		</dependency>
    </dependencies>
    
    package com.toov5.subscribe;
    
    import javax.jms.Connection;
    import javax.jms.JMSException;
    import javax.jms.MessageProducer;
    import javax.jms.Session;
    import javax.jms.TextMessage;
    import javax.jms.Topic;
    
    import org.apache.activemq.ActiveMQConnectionFactory;
    
    
    public class producerTest {
        // mq通讯地址
        private static String url = "tcp://192.168.91.6:61616";
        // 消息名称
        private static String topicName = "toov5_topic";
    
        public static void main(String[] args) throws JMSException {
            // 先创建连接工厂 密码默认采用admin admin
            ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory(url);
            // 创建连接
            Connection connection = activeMQConnectionFactory.createConnection();
            // 启动连接
            connection.start();
            // 创建会话
            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); // 是否需要事务方式提交 消费方式默认自动签收
            
            
            // 拿到session 创建目标 创建主题
            Topic topic =session.createTopic(topicName);
    
            // 创建生产者
            MessageProducer producer = session.createProducer(topic); // 生产者生产的消息 是放在这个queue里面的
            for (int i = 1; i < 10; i++) {
                // 拿到队列 创建消息
                TextMessage textMessage = session.createTextMessage("消息内容" + i);
                // 发送消息
                producer.send(textMessage);
            }
            // 关闭连接
            connection.close();
            System.out.println("消息发送完毕");
        }
    
    }

    结果:

    发布订阅模式!先启动订阅 在启动发布!!!!!!

    package com.toov5.subscribe;
    import javax.jms.Connection;
    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 javax.jms.Topic;
    
    import org.apache.activemq.ActiveMQConnectionFactory;
    
    
    public class consumerTest {
        // mq通讯地址
        private static String url = "tcp://192.168.91.6:61616";
        // 消息名称
        private static String topicName = "toov5_topic";
        public static void main(String[] args) throws JMSException {
            // 先创建连接工厂 密码默认采用admin admin
            ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory(url);
            // 创建连接
            Connection connection = activeMQConnectionFactory.createConnection();
            // 启动连接
            connection.start();
            // 创建会话
            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); // 是否需要事务方式提交 消费方式默认自动签收
            // 拿到session 创建目标 创建主题
            Topic topic =session.createTopic(topicName);
    
            
             
            //创建消费者
            MessageConsumer consumer = session.createConsumer(topic);
            //启动监听 监听消息
            consumer.setMessageListener(new MessageListener() {
                
                public void onMessage(Message message) {
                    //强制转换
                    TextMessage textMessage = (TextMessage) message;
                    try {
                        System.out.println("consumer 消费 producer:"+textMessage.getText());
                    } catch (JMSException e) {
                        
                        e.printStackTrace();
                    }
                }
            });
             //监听时候 不要关闭连接 关闭就不监听了 一只处于监听状态 (长连接)
             
        }
    
    }

    结果:

    如果启动一个生产者 两个消费者 那么消费者消费都到的是一样的!

      

  • 相关阅读:
    艾伟也谈项目管理,项目经理成长日记(6)——对不上的帐 狼人:
    艾伟也谈项目管理,Google的产品质量之道 狼人:
    艾伟也谈项目管理,项目管理 – 人员外购利弊谈 狼人:
    艾伟也谈项目管理,项目经理成长日记(7)——说是细,做的粗 狼人:
    艾伟也谈项目管理,谈软件协作:君子和而不同,小人同而不和 狼人:
    艾伟也谈项目管理,工作感言:任务分配及管理 狼人:
    艾伟也谈项目管理,敏捷教练的工具箱 狼人:
    《青春依然,再见理想——献给学弟学妹》大四学生的万字忏悔书,警示学弟学妹
    errno含义
    使用索引统计信息(Index Statistics)优化查询语句,提高查询效率
  • 原文地址:https://www.cnblogs.com/toov5/p/9937155.html
Copyright © 2020-2023  润新知