大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

JMS&ActiveMQ教程
基于JMS的消息傳送
ActiveMQ與Spring集成
ActiveMQ與SpringBoot集成
ActiveMQ安全機制
ActiveMQ主從集群

ActiveMQ發送消息與接收消息示例

1、創建普通的maven項目11-activemq-java

2、在pom.xml文件中加入jms 和 activemq 的相關依賴

<!-- JMS規范的jar依賴 -->
<dependency>
    <groupId>javax.jms</groupId>
    <artifactId>javax.jms-api</artifactId>
    <version>2.0.1</version>
</dependency>

<!-- activeMQ對jms具體實現的jar依賴 -->
<dependency>
    <groupId>org.apache.activemq</groupId>
    <artifactId>activemq-client</artifactId>
    <version>5.15.8</version>
</dependency>

3、在com.bjpowernode.activemq.send包下編寫一個消費發送者QueueSender發送消息

package com.bjpowernode.activemq.send;
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
public class QueueSender {
    public static final String BROKER_URL = "tcp://192.168.235.128:61616";
//相當于一個數據庫(其實是一個隊列)
    public static final String DESTINATION = "myQueue";
    public static void main(String[] args) {
        sendMessage();
    }
    public static void sendMessage(){
        //1 .創建一個連接工廠
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(BROKER_URL);
        Connection connection = null;
        Session session = null;
        MessageProducer messageProducer = null;
        try {
            //2. 獲取一個連接
            connection = connectionFactory.createConnection();
            //3. 創建一個Session 第一個參數:是否是事務消息 第二個參數:消息確認機制(自動確認還是手動確認)
            session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);
            //4. 有了session之后,就可以創建消息,目的地,生產者和消費者
            Message message = session.createTextMessage("Hello ActiveMQ");
            //目的地
            Destination destination = session.createQueue(DESTINATION);
            //生產者
            messageProducer = session.createProducer(destination);
            //發消息 沒有返回值,是非阻塞的
            messageProducer.send(message);
        } catch (JMSException e) {
            e.printStackTrace();
        }finally{
            try {
                if(messageProducer != null){
                    messageProducer.close(); 
                }
                if(session != null){
                    session.close();
                }
                if(connection != null){
                    connection.close();
                }
            }catch (JMSException e) {
                e.printStackTrace();
            }
        }
    }
}

4、運行程序,連接ActiveMQ的web控制臺查看

5、啟動提示sl4j日志沒有實現,在pom.xml文件中添加slf4j-simple 1.7.25,或者slf4j-nop 1.7.25

<!--slf4j的簡單實現-->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.7.25</version>
</dependency>

6、在com.bjpowernode.activemq.receive包下編寫一個消費接收QueueReceiver接收消息

package com.bjpowernode.activemq.receive;
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
public class QueueReceiver {
    public static final String BROKER_URL = "tcp://192.168.235.128:61616";
    //相當于一個數據庫(其實是一個隊列)
    public static final String DESTINATION = "myQueue";

    public static void main(String[] args) {
        receiveMessage();
    }
    public static void receiveMessage(){
        //1 .創建一個連接工廠
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(BROKER_URL);
        Connection connection = null;
        Session session = null;
        MessageConsumer messageConsumer = null;
        try {
            //2. 獲取一個連接
            connection = connectionFactory.createConnection();
            //接收消息,需要將連接啟動一下,才可以接收到消息
            connection.start();
            //3. 創建一個Session 第一個參數:是否是事務消息 第二個參數:消息確認機制(自動確認還是手動確認)
            session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);
            //4. 有了session之后,就可以創建消息,目的地,生產者和消費者
            //目的地
            Destination destination = session.createQueue(DESTINATION);
            //消費者
            messageConsumer = session.createConsumer(destination);
            //循環接收消息
            while (true){
                //接收消息 有返回值,是阻塞的
                Message message = messageConsumer.receive();
                //判斷消息類型
                if(message instanceof TextMessage){
                    String text = ((TextMessage) message).getText();
                    System.out.println(text);
                }
            }
        } catch (JMSException e) {
            e.printStackTrace();
        }finally{
            try {
                if(messageConsumer != null){
                    messageConsumer.close();
                }
                if(session != null){
                    session.close();
                }
                if(connection != null){
                    connection.close();
                }
            }catch (JMSException e) {
                e.printStackTrace();
            }
        }
    }
}

注意:接收方要調用connection的start方法才能接收到

7、運行接收者的代碼,在ActiveMQ的web控制臺觀察消息數據

 

全部教程
主站蜘蛛池模板: 国内视频精品 | 四虎免费紧急入口观看 | 日韩欧美国产精品第一页不卡 | 亚洲一区欧美日韩 | 欧美日本免费观看αv片 | 欧美日本一本 | 91热久久免费频精品黑人99 | 日韩欧美国产中文字幕 | 国产综合久久久久 | 欧美专区在线 | 欧美综合区 | 日韩专区第一页 | 91亚洲在线| 毛片福利视频 | 欧做爰xxxⅹ性欧美大片孕妇 | 免费观看成人久久网免费观看 | 国产精品中文字幕在线观看 | 99久久成人国产精品免费 | 狠狠色噜狠狠狠狠色综合久 | 日韩亚洲欧美在线爱色 | 狠狠色丁香婷婷综合小时婷婷 | 国产在线伊人 | 日本aaaa毛片在线看 | 亚洲成在人天堂一区二区 | 日韩每日更新 | 精品在线播放视频 | 久久精品免费看 | 亚洲一区二区三区四区热压胶 | 亚洲欧洲视频 | 国产精品精品视频 | 2021在线永久免费视频 | 亚洲在线免费 | 久久亚洲综合伊人 | 成人夜视频| 亚洲成人视 | 一区二区三区四区在线观看视频 | 久久香蕉精品成人 | 久久这里只有精品6 | 亚洲国产精品激情在线观看 | 噜噜狠狠 | 国产精品国语自产拍在线观看 |