中介軟體 activeMQ Jms Java Demo,activemqjms

來源:互聯網
上載者:User

中介軟體 activeMQ Jms Java Demo,activemqjms

一、什麼是ActiveMQ

  百度解釋:

  ActiveMQ 是Apache出品,最流行的,能力強勁的開源訊息匯流排。ActiveMQ 是一個完全支援JMS1.1和J2EE 1.4規範的 JMS Provider實現,儘管JMS規範出台已經是很久的事情了,但是JMS在當今的J2EE應用中間仍然扮演著特殊的地位。

  https://baike.baidu.com/item/ActiveMQ/7889688?fr=aladdin

二、安裝ActiveMq

  windows

  訪問ActiveMQ官網下載ActiveMq

  http://activemq.apache.org/

  

  下載完畢後,直接解壓即可,然後進入bin目錄,選擇運行位元(32位,64位)

  1)可以點擊InstallService.bat 直接啟動

  2)也可以點擊activemq.bat 安裝到window服務,每次電腦啟動時就會自動啟動

  

  

 

 

三、訪問ActiveMQ

  開啟瀏覽器輸入:http://127.0.0.1:8161 如,登入的名稱和密碼都是:admin

  

  

  看到即代表登入成功了!!!

四、編寫demo代碼

  Maven項目

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>    <groupId>com.zy.jms</groupId>    <artifactId>jms</artifactId>    <version>1.0-SNAPSHOT</version>    <dependencies>        <dependency>            <groupId>org.apache.activemq</groupId>            <artifactId>activemq-all</artifactId>            <version>5.9.0</version>        </dependency>    </dependencies></project>
pom.xml
public class AppConsumer {    private static final String url = "tcp://127.0.0.1:61616";    private static final String queueName = "queue_message";    public static void main(String[] args) throws JMSException {        //1.建立串連工場        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);        //2.建立串連        Connection connection = connectionFactory.createConnection();        //3.啟動串連        connection.start();        //4.建立會話        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);        //5.建立一個目標        Destination destination = session.createQueue(queueName);        //6.建立消費者        MessageConsumer consumer = session.createConsumer(destination);        //7.建立一個監聽器        consumer.setMessageListener(new MessageListener() {            public void onMessage(Message message) {                TextMessage textMessage = (TextMessage) message;                try {                    System.out.println("接收訊息:" + textMessage.getText());                } catch (JMSException e) {                    e.printStackTrace();                }            }        });        //connection.close();    }}
AppConsumer.java
public class AppProducer {    private static final String url = "tcp://127.0.0.1:61616";    private static final String queueName = "queue_message";    public static void main(String[] args) throws JMSException {        //1.建立串連工場        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);        //2.建立串連        Connection connection = connectionFactory.createConnection();        //3.啟動串連        connection.start();        //4.建立會話        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);        //5.建立一個目標        Destination destination = session.createQueue(queueName);        //6.建立生產者        MessageProducer producer = session.createProducer(destination);        for (int i = 0; i < 100; i++) {            //7.建立訊息            TextMessage textMessage = session.createTextMessage("activeMQ" + i);            producer.send(textMessage);        }        System.out.print("所有訊息已經全部發送完了");        connection.close();    }}
AppProducer.java

五、說明

  代碼是示範的隊列模式,還有一種是主題模式

  如果要用主題模式可以修改代碼碼如下:

  Destination destination = session.createQueue(queueName);

  改為:

  Destination destination = session.createTopic(topicName);

  即可!!!

  設定持久化:

  producer.setDeliveryModel(DeliveryMode.PERSISTENT);

六、比較

  隊列模式:在點對點的傳輸方式中,訊息資料被持久化,每條訊息都能被消費,沒有監聽QUEUE地址也能被消費,資料不會丟失,一對一的發布接受策略,保證資料完整。

     主題模式:在發布訂閱訊息方式中,訊息是無狀態的,不保證每條訊息被消費,只有監聽該TOPIC地址才能收到訊息並消費,否則該訊息將會丟失。一對多的發布接受策略,可以同時消費多個訊息。

  

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.