• activeMQ点对点


    摘要: ActiveMQ 点对点消息 Point-to-Point 是一对一

    创建消息生产者

    /**
     * 点对点消息生产者
     * 
     * @author Edward
     * 
     */
    public class P2pProducer {
    
    	public static void main(String[] args) {
    		ConnectionFactory connectionFactory = null;
    		Connection conn = null;
    		Session session = null;
    		Queue queue = null;
    		MessageProducer messageProducer = null;
    		try {
    			// 创建工厂
    			// ActiveMQConnection.DEFAULT_USER 默认null
    			// ActiveMQConnection.DEFAULT_PASSWORD 默认null
    			// ActiveMQConnection.DEFAULT_BROKER_URL
    			// 默认failover://tcp://localhost:61616
    			connectionFactory = new ActiveMQConnectionFactory(
    					ActiveMQConnection.DEFAULT_USER,
    					ActiveMQConnection.DEFAULT_PASSWORD,
    					ActiveMQConnection.DEFAULT_BROKER_URL);
    			// 创建连接
    			conn = connectionFactory.createConnection();
    			// 启动连接
    			conn.start();
    			// 创建会话 createSession(true, Session.AUTO_ACKNOWLEDGE); true 表示开启事务
    			// Session.AUTO_ACKNOWLEDGE 消息模式
    			session = conn.createSession(true, Session.AUTO_ACKNOWLEDGE);
    			// 创建队列
    			queue = session.createQueue("P2pQueue");
    			// 创建消息生产者
    			messageProducer = session.createProducer(queue);
    			// 创建消息
    			TextMessage message = session.createTextMessage();
    			message.setText("我是P2pProducer生产的消息");
    			// 发送消息
    			messageProducer.send(message);
    			// 提交事务
    			session.commit();
    			System.out.println("OK");
    		} catch (JMSException e) {
    			e.printStackTrace();
    		} finally {
    			try {
    				session.close();
    				conn.close();
    			} catch (JMSException e) {
    				e.printStackTrace();
    			}
    		}
    
    	}
    
    }

    运行成功,查看控制台:

    创建消息消费者

    /**
     * 点对点消息消费者
     * 
     * @author Edward
     * 
     */
    public class P2pConsumer {
    
    	public static void main(String[] args) {
    		ConnectionFactory connectionFactory = null;
    		Connection conn = null;
    		Session session = null;
    		Queue queue = null;
    		MessageConsumer messageConsumer = null;
    		try {
    			// 创建工厂
    			// ActiveMQConnection.DEFAULT_USER 默认null
    			// ActiveMQConnection.DEFAULT_PASSWORD 默认null
    			// ActiveMQConnection.DEFAULT_BROKER_URL
    			// 默认failover://tcp://localhost:61616
    			connectionFactory = new ActiveMQConnectionFactory(
    					ActiveMQConnection.DEFAULT_USER,
    					ActiveMQConnection.DEFAULT_PASSWORD,
    					ActiveMQConnection.DEFAULT_BROKER_URL);
    			// 创建连接
    			conn = connectionFactory.createConnection();
    			// 启动连接
    			conn.start();
    			// 创建会话 createSession(true, Session.AUTO_ACKNOWLEDGE); false 表示不开启事务
    			// Session.AUTO_ACKNOWLEDGE 消息模式
    			session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
    			// 创建队列
    			queue = session.createQueue("P2pQueue");
    			// 创建消息消费者
    			messageConsumer = session.createConsumer(queue);
    			// 注册消费消息监听
    			messageConsumer.setMessageListener(new MessageListener() {
    
    				@Override
    				public void onMessage(Message message) {
    					try {
    						System.out.println("我收到的消息:"
    								+ ((TextMessage) message).getText());
    					} catch (JMSException e) {
    						e.printStackTrace();
    					}
    				}
    			});
    		} catch (JMSException e) {
    			e.printStackTrace();
    		}
    	}
    }

    执行结果

    SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
    SLF4J: Defaulting to no-operation (NOP) logger implementation
    SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
    我收到的消息:我是P2pProducer生产的消息
  • 相关阅读:
    匿名内部类
    父类引用指向子类对象【转】
    书签收集
    Linux搭建我的世界服务器
    Python入门学习-DAY27- isinstance与issubclass、反射、内置方法
    Python入门学习-DAY26-绑定方法与非绑定方法
    Python入门学习-DAY25-组合、多态、封装
    Python入门学习-DAY24-继承
    Python入门学习-DAY23-面向对象编程
    Python入门学习-DAY20-常用模块三-re模块、subprocess模块
  • 原文地址:https://www.cnblogs.com/libin6505/p/7792834.html
Copyright © 2020-2023  润新知