国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

消息隊列學習(二)

XFLY / 864人閱讀

摘要:的全稱是,即消息服務。它主要用于在生產者和消費者之間進行消息傳遞,生產者負責產生消息,而消費者負責接收消息。會話是生產和消費消息的一個單線程上下文。消息消息由以下三部分組成消息頭。

今天我們以ActiveMQ為例進行一系列的學習

Apache ActiveMQ是Apache軟件基金會所研發的開放源碼消息中間件;由于ActiveMQ是一個純Java框架,那么我們先要了解下java中的JMS。

JMS的全稱是Java Message Service,即Java消息服務。它主要用于在生產者和消費者之間進行消息傳遞,生產者負責產生消息,而消費者負責接收消息。把它應用到實際的業務需求中的話我們可以在特定的時候利用生產者生成一消息,并進行發送,對應的消費者在接收到對應的消息后去完成對應的業務邏輯。對于消息的傳遞有兩種類型,一種是點對點的,即一個生產者和一個消費者一一對應;另一種是發布/訂閱模式,即一個生產者產生消息并進行發送后,可以由多個消費者進行接收。

JMS基本構成 1、連接工廠

連接工廠是客戶用來創建連接的對象,例如 ActiveMQ 提供的
ActiveMQConnectionFactory。

2、 連接

JMS Connection 封裝了客戶與 JMS 提供者之間的一個虛擬的連接。

3、會話

JMS Session 是生產和消費消息的一個單線程上下文。會話用于創建消息生
產者(producer)、消息消費者(consumer)和消息(message)等。會話提供
了一個事務性的上下文,在這個上下文中,一組發送和接收被組合到了一個原子
操作中。

4、 目的地

目的地是客戶用來指定它生產的消息的目標和它消費的消息的來源的對象。
JMS1.0.2 規范中定義了兩種消息傳遞域:點對點(PTP)消息傳遞域和發布/訂閱
消息傳遞域。

5、消息生產者

消息生產者是由會話創建的一個對象,用于把消息發送到一個目的地。

6、消息消費者

消息消費者是由會話創建的一個對象,它用于接收發送到目的地的消息。

7、消息

JMS 消息由以下三部分組成:
? 消息頭。每個消息頭字段都有相應的 getter 和 setter 方法。
? 消息屬性。如果需要除消息頭字段以外的值,那么可以使用消息屬性。
? 消息體。JMS 定義的消息類型有 TextMessage、MapMessage、BytesMessage、
StreamMessage 和 ObjectMessage。

來看下具體代碼:
生產者
  // 1.初始化connection工廠 ?
   ConnectionFactory factory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,
     ActiveMQConnection.DEFAULT_PASSWORD, BROKE_URL);
   // 2.創建Connection ?
   connection = factory.createConnection();
   // 3.打開連接 ?
   connection.start();
   // 4.創建session ?
   session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
   // 5.創建消息目的地 ?
   Destination destination = session.createQueue(DESTINATION);
   //6.創建生產者
   MessageProducer producer = session.createProducer(destination);
   //7.配置消息持久化
   producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
   //8.發送消息
   sendMessage(session, producer);
   //9.事務提交
   session.commit();
消費者
?          // 1.初始化connection工廠 ?
? ? ? ? ? ? ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(); ?
??
? ? ? ? ? ? // 2.創建Connection ?
? ? ? ? ? ? connection = connectionFactory.createConnection(); ?
??
? ? ? ? ? ? // 3.打開連接 ?
? ? ? ? ? ? connection.start(); ?
??
? ? ? ? ? ? // 4.創建session ?
? ? ? ? ? ? Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); ?
??
? ? ? ? ? ? // 5.創建消息目標 ?
? ? ? ? ? ? Destination destination = session.createTopic("YD"); ?
??
? ? ? ? ? ? //6.創建消費者 ?
? ? ? ? ? ? MessageConsumer consumer = session.createConsumer(destination); ?
?? ? ? ? ? ? ?
? ? ? ? ? ? //7.配置監聽 ?
? ? ? ? ? ? consumer.setMessageListener(this); ?

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/66442.html

相關文章

  • 消息中間件——RabbitMQ()各大主流消息中間件綜合對比介紹!

    摘要:主流消息中間件介紹是由出品,是一個完全支持和規范的實現。主流消息中間件介紹是阿里開源的消息中間件,目前也已經孵化為頂級項目。 showImg(https://img-blog.csdnimg.cn/20190509221741422.gif);showImg(https://img-blog.csdnimg.cn/20190718204938932.png?x-oss-process=...

    hiyang 評論0 收藏0
  • RabbitMQ+PHP 教程(Work Queues)

    摘要:平均每個消費者將得到相同數量的消息。消息確認完成任務可能需要幾秒鐘。為了確保消息不會丟失,支持消息確認。沒有任何消息超時當這個消費者中止了,將會重新分配消息時。這是因為只是調度消息時,消息進入隊列。 showImg(https://segmentfault.com/img/bVXNuN?w=332&h=111); 介紹 在上一個 Hello World 教程中,我們編寫了從指定隊列發送...

    iKcamp 評論0 收藏0
  • 千萬級消息設計--初級篇(

    摘要:需求用戶個人消息,平臺消息平臺給所有人發送消息。原因如果平臺用戶量較大時,假如萬,發一條系統消息,將要給萬的人發送一條,就是的消息記錄。千萬級的數據表,后期通過索引優化,結構優化,業務邏輯優化,避免大量并發查詢。 說明 本文都是參加工作的實際情況,希望對大家有所幫助。—— 螞蟻爬樹不怕高,有心學習不怕老。 需求 1.用戶個人消息,平臺消息(平臺給所有人發送消息)。2.用戶未讀消息展示,...

    youkede 評論0 收藏0
  • 千萬級消息設計--初級篇(

    摘要:需求用戶個人消息,平臺消息平臺給所有人發送消息。原因如果平臺用戶量較大時,假如萬,發一條系統消息,將要給萬的人發送一條,就是的消息記錄。千萬級的數據表,后期通過索引優化,結構優化,業務邏輯優化,避免大量并發查詢。 說明 本文都是參加工作的實際情況,希望對大家有所幫助。—— 螞蟻爬樹不怕高,有心學習不怕老。 需求 1.用戶個人消息,平臺消息(平臺給所有人發送消息)。2.用戶未讀消息展示,...

    0x584a 評論0 收藏0

發表評論

0條評論

XFLY

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<