亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ActiveMQ中間消息件如何在Java項目中使用

發布時間:2021-03-23 15:28:32 來源:億速云 閱讀:172 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關ActiveMQ中間消息件如何在Java項目中使用,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

消息一共有兩種接收和發送形式:點對點和發布定閱模式,也就是“一對一”和“一對多”。

1.導包(maven):

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

2.開始寫類,提供者(發送者)和消費者(接收者)是兩個不同的項目,我們先創建普通的maven項目,而不是web項目點對點的方式(消息只能被消費一次,如果同時有多個消費者,誰先搶到就是誰的)

消息提供者

 public static void main(String[] args) throws JMSException {

    //創建連接工廠,這個參數就是自己的activeMQ的地址
    ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://192.168.25.180:61616");

    //2.創建連接
    Connection connection = connectionFactory.createConnection();

    //3.啟動連接
    connection.start();

    //4.獲取session(會話對象)
    /*
    arg0 是否啟用事務
    arg1 消息的確認方式 自動確認
     */
    Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);

    //5.創建一個隊列對象,名稱
    Queue firstQueue = session.createQueue("firstQueue");

    //6.創建一個消息的生產者對象
//    Destination destination = ;//目標對象
    MessageProducer producer = session.createProducer(firstQueue);

    //7.創建一個消息
    TextMessage textMessage = session.createTextMessage("歡迎來到奇的天喻軟件");

    //8.發送消息
    producer.send(textMessage);
    //9.關閉資源
    producer.close();
    session.close();
    connection.close();

  }

消息消費者

前幾步是一樣的,都是創建連接,只有第6步不一樣,創建的是一個消費者

public static void main(String[] args) throws JMSException, IOException {
    ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://192.168.25.180:61616");

    //2.創建連接
    Connection connection = connectionFactory.createConnection();

    //3.啟動連接
    connection.start();

    //4.獲取session(會話對象)
    /*
    arg0 是否啟用事務
    arg1 消息的確認方式 自動確認
     */
    Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);

    //5.創建一個隊列對象,名稱
    Queue firstQueue = session.createQueue("firstQueue");



    //6.創建消息消費者對象
    MessageConsumer consumer = session.createConsumer(firstQueue);

    //7.設置監聽
    consumer.setMessageListener(new MessageListener() {
      @Override
      public void onMessage(Message message) {
        TextMessage textMessage = (TextMessage)message;
        try {
          System.out.println("提取的消息是"+textMessage.getText());
        } catch (JMSException e) {
          e.printStackTrace();
        }
      }
    });

    //8.等待鍵盤輸入
    //目的是為了讓程序停止來看效果
    System.in.read();


    //9.關閉資源
    consumer.close();
    session.close();
    connection.close();
  }

發布訂閱模式(發布消息后,只有在之前運行的消費者才能收到,消息被任何一個消費者消費后,以后啟動的消費者不能消費之前的消息)

消息提供者

 //創建連接工廠
    ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://192.168.25.180:61616");

    //2.創建連接
    Connection connection = connectionFactory.createConnection();

    //3.啟動連接
    connection.start();

    //4.獲取session(會話對象)
    /*
    arg0 是否啟用事務
    arg1 消息的確認方式 自動確認
     */
    Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);

    //5
    Topic topic = session.createTopic("first-topic");


    //6.創建一個消息的生產者對象
//    Destination destination = ;//目標對象
    MessageProducer producer = session.createProducer(topic);

    //7.創建一個消息
    TextMessage textMessage = session.createTextMessage("歡迎來到奇的天喻軟件");

    //8.發送消息
    producer.send(textMessage);


    //9.關閉資源
    producer.close();
    session.close();
    connection.close();

消費者

ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://192.168.25.180:61616");

    //2.創建連接
    Connection connection = connectionFactory.createConnection();

    //3.啟動連接
    connection.start();

    //4.獲取session(會話對象)
    /*
    arg0 是否啟用事務
    arg1 消息的確認方式 自動確認
     */
    Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);

    //5
    Topic topic = session.createTopic("first-topic");



    //6.創建消息消費者對象
    MessageConsumer consumer = session.createConsumer(topic);

    //7.設置監聽
    consumer.setMessageListener(new MessageListener() {
      @Override
      public void onMessage(Message message) {
        TextMessage textMessage = (TextMessage)message;
        try {
          System.out.println("提取的消息是"+textMessage.getText());
        } catch (JMSException e) {
          e.printStackTrace();
        }
      }
    });
    //8.等待鍵盤輸入
    //目的是為了讓程序停止來看效果
    System.in.read();
    //9.關閉資源
    consumer.close();
    session.close();
    connection.close();

看完上述內容,你們對ActiveMQ中間消息件如何在Java項目中使用有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

长沙县| 泗阳县| 平武县| 巢湖市| 永福县| 百色市| 涪陵区| 余庆县| 习水县| 渭南市| 蒙山县| 高唐县| 巩义市| 伊通| 阳朔县| 通许县| 吉木萨尔县| 资溪县| 五寨县| 南丹县| 汉沽区| 五华县| 东乡族自治县| 志丹县| 霸州市| 应城市| 凯里市| 柯坪县| 内丘县| 望江县| 株洲县| 邵东县| 西昌市| 都江堰市| 巍山| 理塘县| 平昌县| 双牌县| 新郑市| 耿马| 东平县|