• activemq 例子


    1.maven 依赖

      <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-all</artifactId>
        <version>5.13.4</version>
      </dependency>

    2.测试

      

      1 package com.test.activemq;
      2 
      3 import javax.jms.Connection;
      4 
      5 import javax.jms.ConnectionFactory;
      6 import javax.jms.JMSException;
      7 import javax.jms.Message;
      8 import javax.jms.MessageConsumer;
      9 import javax.jms.MessageListener;
     10 import javax.jms.MessageProducer;
     11 import javax.jms.Queue;
     12 import javax.jms.Session;
     13 import javax.jms.TextMessage;
     14 import javax.jms.Topic;
     15 
     16 import org.apache.activemq.ActiveMQConnectionFactory;
     17 import org.junit.Test;
     18 
     19 public class test {
     20 
     21     /**
     22      * 创建 一对一推送 生产者
     23      * 
     24      * @author changwei
     25      * @date 2018-5-30 下午5:53:14
     26      * @param args
     27      * @throws JMSException
     28      */
     29     @Test
     30     public void TestQueueProducer() throws Exception {
     31         // 1、创建工厂连接对象,需要制定ip和端口号
     32         ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
     33                 "tcp://118.25.26.50:61616");
     34         // 2、使用连接工厂创建一个连接对象
     35         Connection connection = connectionFactory.createConnection();
     36         // 3、开启连接
     37         connection.start();
     38         // 4、使用连接对象创建会话(session)对象第一个参数:是否支持事务,如果为true,则会忽略第二个参数,自动被jms服务器设置为SESSION_TRANSACTED。
     39         Session session = connection.createSession(false,
     40                 Session.AUTO_ACKNOWLEDGE);
     41         // 5、使用会话对象创建目标对象,包含queue和topic(一对一和一对多)
     42         Queue queue = session.createQueue("test-queue2");
     43         // 6、使用会话对象创建生产者对象
     44         MessageProducer producer = session.createProducer(queue);
     45         // 7、使用会话对象创建一个消息对象
     46         TextMessage textMessage = session.createTextMessage("hello11");
     47         // 8、发送消息
     48         producer.send(textMessage);
     49         // 9、关闭资源
     50         producer.close();
     51         session.close();
     52         connection.close();
     53 
     54     }
     55 
     56     /**
     57      * 创建一对一 消费者
     58      * 
     59      * @author changwei
     60      * @date 2018-6-4 上午9:25:05
     61      * @throws Exception
     62      */
     63     @Test
     64     public void TestMQConsumerQueue() throws Exception {
     65         // 1、创建工厂连接对象,需要制定ip和端口号
     66         ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
     67                 "tcp://118.25.26.50:61616");
     68         // 2、使用连接工厂创建一个连接对象
     69         Connection connection = connectionFactory.createConnection();
     70         // 3、开启连接
     71         connection.start();
     72         // 4、使用连接对象创建会话(session)对象
     73         Session session = connection.createSession(false,
     74                 Session.AUTO_ACKNOWLEDGE);
     75         // 5、使用会话对象创建目标对象,包含queue和topic(一对一和一对多)
     76         Queue queue = session.createQueue("test-queue2");
     77         // 6、使用会话对象创建生产者对象
     78         MessageConsumer consumer = session.createConsumer(queue);
     79         // 7、向consumer对象中设置一个messageListener对象,用来接收消息
     80         consumer.setMessageListener(new MessageListener() {
     81 
     82             public void onMessage(Message message) {
     83                 if (message instanceof TextMessage) {
     84                     TextMessage textMessage = (TextMessage) message;
     85                     try {
     86                         System.out.println(textMessage.getText());
     87                     } catch (JMSException e) {
     88                         e.printStackTrace();
     89                     }
     90                 }
     91             }
     92         });
     93         // 8、程序等待接收用户消息
     94         System.in.read();
     95 
     96         // 8、程序等待接收用户消息
     97         // 9、关闭资源
     98         consumer.close();
     99         session.close();
    100         connection.close();
    101     }
    102 
    103     /**
    104      * 创建 一对多 生产者
    105      * 
    106      * @author changwei
    107      * @date 2018-6-4 上午9:29:23
    108      * @throws Exception
    109      */
    110     @Test
    111     public void TestTopicProducer() throws Exception {
    112         // 1、创建工厂连接对象,需要制定ip和端口号
    113         ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
    114                 "tcp://118.25.26.50:61616");
    115         // 2、使用连接工厂创建一个连接对象
    116         Connection connection = connectionFactory.createConnection();
    117         // 3、开启连接
    118         connection.start();
    119         // 4、使用连接对象创建会话(session)对象 第一个参数:是否支持事务,如果为true,则会忽略第二个参数,自动被jms服务器设置为SESSION_TRANSACTED。
    120         Session session = connection.createSession(false,
    121                 Session.AUTO_ACKNOWLEDGE);
    122         // 5、使用会话对象创建目标对象,包含queue和topic(一对一和一对多)
    123         Topic topic = session.createTopic("test-topic");
    124         // 6、使用会话对象创建生产者对象
    125         MessageProducer producer = session.createProducer(topic);
    126         // 7、使用会话对象创建一个消息对象
    127         TextMessage textMessage = session.createTextMessage("hello!test-topic");
    128         TextMessage textMessage1 = session.createTextMessage("hello!test-topic111");
    129         // 8、发送消息
    130         producer.send(textMessage);
    131         producer.send(textMessage1);
    132         //session.commit();
    133         // 9、关闭资源
    134         producer.close();
    135         session.close();
    136         connection.close();
    137     }
    138 
    139     /**
    140      * 创建一对多 消费者
    141      * 
    142      * @author changwei
    143      * @date 2018-6-4 上午9:28:56
    144      * @throws Exception
    145      */
    146     @Test
    147     public void TestTopicConsumer() throws Exception {
    148         // 1、创建工厂连接对象,需要制定ip和端口号
    149         ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
    150                 "tcp://118.25.26.50:61616");
    151         // 2、使用连接工厂创建一个连接对象
    152         Connection connection = connectionFactory.createConnection();
    153         // 3、开启连接
    154         connection.start();
    155         // 4、使用连接对象创建会话(session)对象
    156         Session session = connection.createSession(false,
    157                 Session.AUTO_ACKNOWLEDGE);
    158         // 5、使用会话对象创建目标对象,包含queue和topic(一对一和一对多)
    159         Topic topic = session.createTopic("test-topic");
    160         // 6、使用会话对象创建生产者对象
    161         MessageConsumer consumer = session.createConsumer(topic);
    162         // 7、向consumer对象中设置一个messageListener对象,用来接收消息
    163         consumer.setMessageListener(new MessageListener() {
    164 
    165             public void onMessage(Message message) {
    166                 // TODO Auto-generated method stub
    167                 if (message instanceof TextMessage) {
    168                     TextMessage textMessage = (TextMessage) message;
    169                     try {
    170                         System.out.println(textMessage.getText());
    171                     } catch (JMSException e) {
    172                         // TODO Auto-generated catch block
    173                         e.printStackTrace();
    174                     }
    175                 }
    176             }
    177         });
    178 
    179         // new BufferedReader(new InputStreamReader(System.in)).readLine();
    180         // 8、程序等待接收用户消息
    181         System.in.read();
    182         // 9、关闭资源
    183         consumer.close();
    184         session.close();
    185         connection.close();
    186     }
    187     
    188 
    189 }
  • 相关阅读:
    用Visual C#创建Windows服务程序(转)
    输入字符串的格式不正确(异常详细信息: System.FormatException: 输入字符串的格式不正确。)
    pv操作二
    双进程struct sigaction中mask阻塞信号
    pv操作一
    sigprocmask
    共享内存二
    面向接口编程
    类之间的几种关系
    sigaction函数一
  • 原文地址:https://www.cnblogs.com/bug1024/p/9132522.html
Copyright © 2020-2023  润新知