@boothsun
2017-09-09T02:26:56.000000Z
字数 2805
阅读 1344
消息队列
<!-- https://mvnrepository.com/artifact/org.apache.activemq/activemq-core --><dependency><groupId>org.apache.activemq</groupId><artifactId>activemq-core</artifactId><version>5.5.1</version></dependency>
public class JMSProducer {//默认连接用户名private static final String USERNAME = ActiveMQConnection.DEFAULT_USER;//默认连接密码private static final String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD;//默认连接地址private static final String BROKEURL = "tcp://xxx.xx.xx.xx:61616";//发送的消息数量private static final int SENDNUM = 10;public static void main(String[] args) {//连接工厂ConnectionFactory connectionFactory;//连接Connection connection = null;//会话 接受或者发送消息的线程Session session;//消息的目的地Destination destination;//消息生产者MessageProducer messageProducer;//实例化连接工厂connectionFactory = new ActiveMQConnectionFactory(JMSProducer.USERNAME, JMSProducer.PASSWORD, JMSProducer.BROKEURL);try {//通过连接工厂获取连接connection = connectionFactory.createConnection();//启动连接connection.start();//创建sessionsession = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);//创建一个名称为HelloWorld的消息队列destination = session.createQueue("HelloWorld");//创建消息生产者messageProducer = session.createProducer(destination);//发送消息sendMessage(session, messageProducer);session.commit();} catch (Exception e) {e.printStackTrace();}finally{if(connection != null){try {connection.close();} catch (JMSException e) {e.printStackTrace();}}}}/*** 发送消息* @param session* @param messageProducer 消息生产者* @throws Exception*/public static void sendMessage(Session session,MessageProducer messageProducer) throws Exception{for (int i = 0; i < JMSProducer.SENDNUM; i++) {//创建一条文本消息TextMessage message = session.createTextMessage("ActiveMQ 发送消息" +i);System.out.println("发送消息boothsun:Activemq 发送消息" + i);//通过消息生产者发出消息messageProducer.send(message);}}}
运行截图:

消息管理后台页面:

public class JMSConsumer {private static final String USERNAME = ActiveMQConnection.DEFAULT_USER;//默认连接用户名private static final String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD;//默认连接密码private static final String BROKEURL = "tcp://xxx.xxx.xxx.xxx:61616";//连接地址public static void main(String[] args) {ConnectionFactory connectionFactory;//连接工厂Connection connection = null;//连接Session session;//会话 接受或者发送消息的线程Destination destination;//消息的目的地MessageConsumer messageConsumer;//消息的消费者//实例化连接工厂connectionFactory = new ActiveMQConnectionFactory(JMSConsumer.USERNAME, JMSConsumer.PASSWORD, JMSConsumer.BROKEURL);try {//通过连接工厂获取连接connection = connectionFactory.createConnection();//启动连接connection.start();//创建sessionsession = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);//创建一个连接HelloWorld的消息队列destination = session.createQueue("HelloWorld");//创建消息消费者messageConsumer = session.createConsumer(destination);while (true) {TextMessage textMessage = (TextMessage) messageConsumer.receive(100000);if(textMessage != null){System.out.println("收到的消息:" + textMessage.getText());}else {break;}}} catch (JMSException e) {e.printStackTrace();}}}
运行截图:

消息管理后台页面:
