1. 程式人生 > >分布式消息中間件 ActiveMQ-極速時時彩程序出售秒殺面試

分布式消息中間件 ActiveMQ-極速時時彩程序出售秒殺面試

異步 消息發送 bsp 信息 規範 發布訂閱 active 成功 使用

消息中間件產生背景:

  1. 使用多線程可以極速時時彩程序出售,需要的請找【大神源碼論壇】dsluntan.com,詳情咨詢企娥3393756370,實現異步化,並行處理數據;
  2. 但使用MQ不僅滿足多線程這些特點,還可以實現:解耦,削峰,數據持久化存儲,高性能,高可用,可伸縮特性,並且在弱一致性事務中,分布式消息中間件可以通過最大努力通知實現分布式事務最終一致性。

從JMS規範來了解ActiveMQ

兩種消息傳遞形式:

  1. 點對點:消息與消費者對應,異步消費。
  2. 發布訂閱:每個消息可以有多個消費者,消費消息有時間上的相關性,只能消費 訂閱之後發布的消息,可以利用持久訂閱機制,降低時間上的相關性,持久訂閱允許消費者消費沒有訂閱之前的數據。

什麽是持久訂閱和非持久訂閱?

針對發布訂閱模型,如果broker發送消息給訂閱者,訂閱者此時處於未激活狀態,持久訂閱可以接受到消息,但非持久訂閱是收不到消息的。缺點是,在持久訂閱模式下,broker需要為未激活狀態的訂閱者保存消息,可能會造成消息堆積過多溢出。持久訂閱時,生產者向jms服務器註冊自己的唯一id,當生產者處於離線狀態時,jms Provider會為這個id保存所有發送到主題的消息,當生產者再次連接到jms provider的時候,生產者可以根據自己的id得到自己離線時發送到主題的消息。

JMS的可靠性機制

相當於寄快遞,只有快遞被簽收,才認為快遞送達成功,消息的消費包括三階段:消息接收,消息處理,消息確認。

消息結構組成

消息頭:

  1. 消息發送的目的地,即隊列或者主題
  2. 傳送模式:即持久模式和非持久模式
  3. 消息優先級:0-9,默認優先級4
  4. 消息id:唯一識別的消息id

消息體格式:

Text(文本),Map(鍵值對),Byte(字節),Stream(流),Object(對象).

JMS的事務性會話和非事務性會話

  1. 在創建session時候,可以通過true or false來指定事務還是非事務會話。
  2. 只有當commit的時候才將消息投遞出去。

在非事務性會話中:

消息的確認取決於應答模式:自動確認,手動確認,惰性確認。

消息的持久化存儲和非持久化存儲

  1. 持久化保證當broker宕機之後,消息不會丟失。
  2. 非持久化可能會導致mq故障,消息丟失情況。

Broker是什麽?

消息隊列的核心,控制中心,可以將消息路由,保存訂閱者和連接信息。

怎麽解決冪等性?

在消費端,通過判斷消息的全局是否重復來解決冪等。

分布式消息中間件 ActiveMQ-極速時時彩程序出售秒殺面試