真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java中間消息件ActiveMQ怎么用

這篇文章將為大家詳細講解有關(guān)Java中間消息件ActiveMQ怎么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、小程序制作、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了舟山免費建站歡迎大家使用!

什么是中間消息間吧。

采用消息傳送機制/消息隊列 的中間件技術(shù),進行數(shù)據(jù)交流,用在分布式系統(tǒng)的集成。Java中對Jms有了定義,這是Java消息的統(tǒng)一接口。什么是ActiveMq呢?這是這個接口的一種實現(xiàn),相當于數(shù)據(jù)庫連接驅(qū)動一樣,不同廠商有自己不同的實現(xiàn),我們盡快看怎么用代碼實現(xiàn)吧。

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

1.導(dǎo)包(maven):

     org.apache.activemq      activemq-client      5.13.4    

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

消息提供者

public static void main(String[] args) throws JMSException {    //創(chuàng)建連接工廠,這個參數(shù)就是自己的activeMQ的地址    ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://192.168.25.180:61616");    //2.創(chuàng)建連接    Connection connection = connectionFactory.createConnection();    //3.啟動連接    connection.start();    //4.獲取session(會話對象)    /*    arg0 是否啟用事務(wù)    arg1 消息的確認方式 自動確認     */    Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);    //5.創(chuàng)建一個隊列對象,名稱    Queue firstQueue = session.createQueue("firstQueue");    //6.創(chuàng)建一個消息的生產(chǎn)者對象//    Destination destination = ;//目標對象    MessageProducer producer = session.createProducer(firstQueue);    //7.創(chuàng)建一個消息    TextMessage textMessage = session.createTextMessage("歡迎來到奇的天喻軟件");    //8.發(fā)送消息    producer.send(textMessage);    //9.關(guān)閉資源    producer.close();    session.close();    connection.close();  }

消息消費者

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

public static void main(String[] args) throws JMSException, IOException {    ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://192.168.25.180:61616");    //2.創(chuàng)建連接    Connection connection = connectionFactory.createConnection();    //3.啟動連接    connection.start();    //4.獲取session(會話對象)    /*    arg0 是否啟用事務(wù)    arg1 消息的確認方式 自動確認     */    Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);    //5.創(chuàng)建一個隊列對象,名稱    Queue firstQueue = session.createQueue("firstQueue");    //6.創(chuàng)建消息消費者對象    MessageConsumer consumer = session.createConsumer(firstQueue);    //7.設(shè)置監(jiān)聽    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.關(guān)閉資源    consumer.close();    session.close();    connection.close();  }

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

消息提供者

//創(chuàng)建連接工廠    ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://192.168.25.180:61616");    //2.創(chuàng)建連接    Connection connection = connectionFactory.createConnection();    //3.啟動連接    connection.start();    //4.獲取session(會話對象)    /*    arg0 是否啟用事務(wù)    arg1 消息的確認方式 自動確認     */    Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);    //5    Topic topic = session.createTopic("first-topic");    //6.創(chuàng)建一個消息的生產(chǎn)者對象//    Destination destination = ;//目標對象    MessageProducer producer = session.createProducer(topic);    //7.創(chuàng)建一個消息    TextMessage textMessage = session.createTextMessage("歡迎來到奇的天喻軟件");    //8.發(fā)送消息    producer.send(textMessage);    //9.關(guān)閉資源    producer.close();    session.close();    connection.close();

消費者

ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://192.168.25.180:61616");    //2.創(chuàng)建連接    Connection connection = connectionFactory.createConnection();    //3.啟動連接    connection.start();    //4.獲取session(會話對象)    /*    arg0 是否啟用事務(wù)    arg1 消息的確認方式 自動確認     */    Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);    //5    Topic topic = session.createTopic("first-topic");    //6.創(chuàng)建消息消費者對象    MessageConsumer consumer = session.createConsumer(topic);    //7.設(shè)置監(jiān)聽    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.關(guān)閉資源    consumer.close();    session.close();    connection.close();

關(guān)于“Java中間消息件ActiveMQ怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。


文章名稱:Java中間消息件ActiveMQ怎么用
網(wǎng)頁鏈接:http://weahome.cn/article/jsgiee.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部