成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

消息隊(duì)列學(xué)習(xí)(二)

XFLY / 887人閱讀

摘要:的全稱是,即消息服務(wù)。它主要用于在生產(chǎn)者和消費(fèi)者之間進(jìn)行消息傳遞,生產(chǎn)者負(fù)責(zé)產(chǎn)生消息,而消費(fèi)者負(fù)責(zé)接收消息。會話是生產(chǎn)和消費(fèi)消息的一個單線程上下文。消息消息由以下三部分組成消息頭。

今天我們以ActiveMQ為例進(jìn)行一系列的學(xué)習(xí)

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

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

JMS基本構(gòu)成 1、連接工廠

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

2、 連接

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

3、會話

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

4、 目的地

目的地是客戶用來指定它生產(chǎn)的消息的目標(biāo)和它消費(fèi)的消息的來源的對象。
JMS1.0.2 規(guī)范中定義了兩種消息傳遞域:點(diǎn)對點(diǎn)(PTP)消息傳遞域和發(fā)布/訂閱
消息傳遞域。

5、消息生產(chǎn)者

消息生產(chǎn)者是由會話創(chuàng)建的一個對象,用于把消息發(fā)送到一個目的地。

6、消息消費(fèi)者

消息消費(fèi)者是由會話創(chuàng)建的一個對象,它用于接收發(fā)送到目的地的消息。

7、消息

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

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

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/66442.html

相關(guān)文章

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

    摘要:主流消息中間件介紹是由出品,是一個完全支持和規(guī)范的實(shí)現(xiàn)。主流消息中間件介紹是阿里開源的消息中間件,目前也已經(jīng)孵化為頂級項(xiàng)目。 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)

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

    iKcamp 評論0 收藏0
  • 千萬級消息設(shè)計(jì)--初級篇(

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

    youkede 評論0 收藏0
  • 千萬級消息設(shè)計(jì)--初級篇(

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

    0x584a 評論0 收藏0

發(fā)表評論

0條評論

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