ActiveMQ代码-01
p2p模式
生产者
package com.activemq.activemqdemo.p2p; import org.apache.activemq.ActiveMQConnectionFactory; import javax.jms.*; public class JMSProducer { public static final String ACTIVE_URL = "tcp://127.0.0.1:61616"; // 队列名称 public static final String QUEUE_NAME = "index"; public static void main(String[] args) throws JMSException { // 1)获取工厂 ConnectionFactory,使用默认的用户名和密码admin/admin, 指定URL ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ACTIVE_URL); // 2)获取连接 Connection connection = connectionFactory.createConnection(); // 3)启动连接 connection.start(); // 4)创建Session ,参数transacted:事务,acknowledgeMode响应模式 Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); // 5)创建目的地: 队列 Queue queue = session.createQueue(QUEUE_NAME); // 6)创建生产者,参数destination表示目的地---Queue MessageProducer messageProducer = session.createProducer(queue); // 7)发送消息 for (int i = 1 ; i <= 10; i++){ TextMessage textMessage = session.createTextMessage("index队列中的消息:" + i); messageProducer.send(textMessage); } // 8)关闭资源 messageProducer.close(); session.close(); connection.close(); } }
消费者
package com.activemq.activemqdemo.p2p; import org.apache.activemq.ActiveMQConnectionFactory; import javax.jms.*; import java.io.IOException; public class JMSConsumer { public static final String ACTIVE_URL = "tcp://127.0.0.1:61616"; // 队列名称 public static final String QUEUE_NAME = "index"; public static void main(String[] args) throws JMSException, IOException { // 1)获取工厂 ConnectionFactory,使用摸摸人的用户名和密码admin/admin, 指定URL ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ACTIVE_URL); // 2)获取连接 Connection connection = connectionFactory.createConnection(); // 3)启动连接 connection.start(); // 4)创建Session ,参数transacted:事务,acknowledgeMode响应模式 Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); // 5)创建目的地: 队列 Queue queue = session.createQueue(QUEUE_NAME); // 6)创建消费者, MessageConsumer messageConsumer = session.createConsumer(queue); // 7)接收消息: 获取队列中的所有消息,消费者一直接收消息 /*while (true){ TextMessage msg = (TextMessage) messageConsumer.receive(); if (msg != null){ // 接收到消息了 System.out.println("JMSConsumer接收到消息了:"+msg.getText()); }else { // 队列中的消息全部接收完毕 System.out.println("-----消息接收完成----"); break; } }*/ // 7)通过监听的方式接受消息,有消息就接受 没消息就结束了监听 方法参数是MessageListenter接口 ,匿名及内部类非阻塞的 messageConsumer.setMessageListener(new MessageListener() { @Override public void onMessage(Message message) { // 对象 instanceof 类型 TextMessage textMessage = (TextMessage) message; if (message != null && message instanceof TextMessage){ try { System.out.println("JMSConsumer接收到消息了:"+textMessage.getText()); } catch (JMSException e) { e.printStackTrace(); } } } }); System.in.read(); // 8)关闭资源 messageConsumer.close(); session.close(); connection.close(); } }
package com.activemq.activemqdemo.p2p; import org.apache.activemq.ActiveMQConnectionFactory; import javax.jms.*; public class JMSConsumer2 { public static final String ACTIVE_URL = "tcp://127.0.0.1:61616"; // 队列名称 public static final String QUEUE_NAME = "index"; public static void main(String[] args) throws JMSException { // 1)获取工厂 ConnectionFactory,使用摸摸人的用户名和密码admin/admin, 指定URL ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ACTIVE_URL); // 2)获取连接 Connection connection = connectionFactory.createConnection(); // 3)启动连接 connection.start(); // 4)创建Session ,参数transacted:事务,acknowledgeMode响应模式 Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); // 5)创建目的地: 队列 Queue queue = session.createQueue(QUEUE_NAME); // 6)创建消费者, MessageConsumer messageConsumer = session.createConsumer(queue); // 7)接收消息: 获取队列中的所有消息,消费者一直接收消息 while (true){ TextMessage msg = (TextMessage) messageConsumer.receive(); if (msg != null){ // 接收到消息了 System.out.println("JMSConsumer接收到消息了:"+msg.getText()); }else { // 队列中的消息全部接收完毕 System.out.println("-----消息接收完成----"); break; } } // 8)关闭资源 messageConsumer.close(); session.close(); connection.close(); } }
Topic
生产者
package com.activemq.activemqdemo.topic; import org.apache.activemq.ActiveMQConnectionFactory; import javax.jms.*; public class JMSProducer { public static final String ACTIVE_URL = "tcp://127.0.0.1:61616"; // 队列名称 public static final String TOPIC_NAME = "index-topic"; public static void main(String[] args) throws JMSException { // 1)获取工厂 ConnectionFactory,使用默认的用户名和密码admin/admin, 指定URL ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ACTIVE_URL); // 2)获取连接 Connection connection = connectionFactory.createConnection(); // 3)启动连接 connection.start(); // 4)创建Session ,参数transacted:事务,acknowledgeMode响应模式 Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); // 5)创建目的地: 主题 Topic topic = session.createTopic(TOPIC_NAME); // 6)创建生产者,参数destination表示目的地---topic MessageProducer messageProducer = session.createProducer(topic); // 7)发送消息 for (int i = 1 ; i <= 10; i++){ TextMessage textMessage = session.createTextMessage("index队列中的消息:" + i); messageProducer.send(textMessage); } // 8)关闭资源 messageProducer.close(); session.close(); connection.close(); } }
消费者
package com.activemq.activemqdemo.topic; import org.apache.activemq.ActiveMQConnectionFactory; import javax.jms.*; import java.io.IOException; public class JMSConsumer { public static final String ACTIVE_URL = "tcp://127.0.0.1:61616"; // 队列名称 public static final String TOPIC_NAME = "index-topic"; public static void main(String[] args) throws JMSException, IOException { // 1)获取工厂 ConnectionFactory,使用摸摸人的用户名和密码admin/admin, 指定URL ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ACTIVE_URL); // 2)获取连接 Connection connection = connectionFactory.createConnection(); // 3)启动连接 connection.start(); // 4)创建Session ,参数transacted:事务,acknowledgeMode响应模式 Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); // 5)创建目的地: 队列 Topic topic = session.createTopic(TOPIC_NAME); // 6)创建消费者, MessageConsumer messageConsumer = session.createConsumer(topic); // 7)通过监听的方式接受消息,有消息就接受 没消息就结束了监听 方法参数是MessageListenter接口 ,匿名及内部类非阻塞的 messageConsumer.setMessageListener(new MessageListener() { @Override public void onMessage(Message message) { // 对象 instanceof 类型 TextMessage textMessage = (TextMessage) message; if (message != null && message instanceof TextMessage){ try { System.out.println("消费者1的主题接收到消息了:"+textMessage.getText()); } catch (JMSException e) { e.printStackTrace(); } } } }); System.in.read(); // 8)关闭资源 messageConsumer.close(); session.close(); connection.close(); } }
package com.activemq.activemqdemo.topic; import org.apache.activemq.ActiveMQConnectionFactory; import javax.jms.*; import java.io.IOException; public class JMSConsumer2 { public static final String ACTIVE_URL = "tcp://127.0.0.1:61616"; // 队列名称 public static final String TOPIC_NAME = "index-topic"; public static void main(String[] args) throws JMSException, IOException { // 1)获取工厂 ConnectionFactory,使用摸摸人的用户名和密码admin/admin, 指定URL ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ACTIVE_URL); // 2)获取连接 Connection connection = connectionFactory.createConnection(); // 3)启动连接 connection.start(); // 4)创建Session ,参数transacted:事务,acknowledgeMode响应模式 Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); // 5)创建目的地: 主题 Topic topic = session.createTopic(TOPIC_NAME); // 6)创建消费者, MessageConsumer messageConsumer = session.createConsumer(topic); // 7)通过监听的方式接受消息,有消息就接受 没消息就结束了监听 方法参数是MessageListenter接口 ,匿名及内部类非阻塞的 messageConsumer.setMessageListener(new MessageListener() { @Override public void onMessage(Message message) { // 对象 instanceof 类型 TextMessage textMessage = (TextMessage) message; if (message != null && message instanceof TextMessage){ try { System.out.println("消费者2的主题接收到消息了:"+textMessage.getText()); } catch (JMSException e) { e.printStackTrace(); } } } }); System.in.read(); // 8)关闭资源 messageConsumer.close(); session.close(); connection.close(); } }
-----------
--------------------------------------------------------------------------------------------------------------------------------------------
------------

浙公网安备 33010602011771号