1. 程式人生 > 其它 >Json英文語言包API

Json英文語言包API

1、 簡單佇列模式simple:最簡單的工作佇列,其中一個訊息生產者,一個訊息消費者,一個佇列。也稱為點對點模式。一條訊息只能一個消費者消費。

2、 工作佇列work:一個訊息生產者,一個交換器,一個訊息佇列,多個消費者。同樣也稱為點對點模式。一條訊息只能一個消費者消費。

3、 釋出訂閱publish/subscribe:無選擇接收訊息,一個訊息生產者,一個交換器,多個訊息佇列,多個消費者。可以將訊息傳送給不同型別的消費者。做到釋出一次,多個消費者來消費

4、 路由模式routing跟釋出訂閱模式類似,然後在訂閱模式的基礎上加上了型別,訂閱模式是分發到所有繫結到交換機的佇列,路由模式只分發到繫結在交換機上面指定路由鍵的佇列

5、 主題模式:同樣是在釋出/訂閱模式的基礎上,根據主題匹配進行篩選是否接收訊息,比第四類更靈活。

topics 主題模式跟 routing 路由模式類似,只不過路由模式是指定固定的路由鍵 routingKey,而主題模式是可以模糊匹配路由鍵 routingKey,類似於SQL中 = 和 like 的關係。

*代表一個單詞

#代表一個或多個單詞

6、 RPC模式:與上面其他5種所不同之處,類模式是擁有請求/回覆的。也就是有響應的,上面5種都沒有。用的比較少

7、 訊息確認機制

生產者端:

7.1、事務方式實現保證訊息正確傳送出去,使用channel.TxSelect()來開啟事務,最後channel.TxCommit()提交事務,這個只是在業務端確認傳送出去了

7.2、普通confirm,這個是服務端確認接收是否成功,只返回true或者false

7.3、非同步回撥方式確認Ack(必須是路由模式才可以),可以返回具體的失敗原因。

        消費者端:

    有自動簽收、手動簽收(建議)

8、 資料持久化,必須交換機、通道、佇列都開啟持久化

9、 訊息優先順序必須在訊息佇列有堆積時才起作用。

10、死信佇列:一些因為過期、或者遲遲不被消費的訊息重新進入死信佇列。為正常的交換機、通道、佇列繫結死信交換機、通道、佇列

11、備份交換機、備份佇列:給正常的交換機繫結一個備份交換機,那麼沒有傳送成功的訊息會進入備份佇列。消費端可以先從正常佇列取資料,取不到再去備份佇列取。

12、延遲佇列:不想馬上被消費的訊息進入延遲佇列。

延時佇列經常被用來處理訂單超時取消問題。老版本的rabbitmq要指定兩個交換機,訊息傳送時指定過期時間,因為第一個交換機不繫結佇列消費,過期後轉到第二個交換機。新版本有延時佇列的外掛,建立交換機時指定x-delayed-message

 

13、叢集分為:普通叢集(寫訊息時只寫入某個節點,這個節點掛了後會丟資料)、映象叢集(每個節點有相同資料,但無法做到負載均衡)、高可用叢集(HAProxy:負載均衡+keepalive:多個HAProxy熱備切換)

14、一般生產者傳送訊息時,會在訊息上帶一個id,消費者根據這個id通過redis的setnx命令確保不會重複消費