RabbitMQ工作總結

2022-03-15 18:17:13 字數 1053 閱讀 6028

在專案中有用到mq,主要用到的了主題模式和死信佇列,私信佇列是當做延遲佇列來使用。

1、什麼是rabbitmq?為什麼使用rabbitmq?

答:rabbitmq是一款開源的,基於amqp協議的,訊息中介軟體;

公司專案是用springcloud框架,用它來做解耦和非同步、削峰

2、如何保證rabbitmq不被重複消費?

答:會出現重複消費,一般都是因為網路問題、伺服器故障等。

解決方案:

a.部署多個服務。

b.在接收的時候,把引數做冪等,如果是已經消費過的就手動confirm。

c.處理完的時候也做手動confirm

b.佇列的durable 設定成 true(持久化到磁碟裡,及時mq掛了,佇列也不會丟失)

3、如何保證rabbitmq訊息的順序性?

答:之前沒遇到過要求順序性的需求,現在我假設乙個場景:資料的增、刪、改要在佇列完成

那麼,我們執行的順序是: 增-->改-->刪

一條資料都有乙個元件:每次都先把元件當做乙個組id,每次資料下來,都把資料放在快取(硬碟)裡。

如果先執行的是刪,那麼我們先把刪的資訊放在資料庫裡。

接下來如果是增,那麼我們可以先執行增加操作,也把資料的狀態儲存到資料庫。

最後接收到改,我們先從資料庫查詢是否有新增的操作,如果有就執行修改,再判斷資料組是否滿足3條,如果是,再執行刪除,刪除成功,最後把資料組從庫里刪除。

工作中對mq的使用情景?

答:需要用到簡訊、紅點、日誌等服務的時候,都是通過mq去解耦。

死信佇列則是,在做乙個crm系統中使用到,在分配乙個商機的時候,如果這個商機的員工沒有處理。8小時後商機則會回流到待分配狀態。

死信佇列的流程是怎麼樣的?

如下圖,定義乙個死信佇列和乙個普通佇列,在普通佇列訊息過期的時候,去會去執行死信佇列。我們就沒有去接收普通佇列,就做了乙個死信佇列的消費端,因此,等時機一到,就去會去執行死信佇列。具體業務,按照訂單的狀態判斷,是否商機是否被處理。

工作總結 2010 3 16

在cuda中,一般的資料複製到的顯示卡記憶體的部分,稱為global memory。這些記憶體時沒有cache 的,而且,訪問global memory所需要的時間 即latency 是非常長的,通常是數百個cycles.如果我們的程式只有乙個thread,所以每次它讀取global memory的...

找工作總結

算一算,從2008年9月份開始找工作,到2009年12月現在已經有3個月了 找工作,算是人生一段特殊的經歷吧,知道了很多公司,認識了很多人,也學習到了很多東西,對這個社會也認識的更清楚了。從一開始的自信,以為很多崗位都是為自己量身打造,卻一次次被bs,讓我很受打擊。特別是幾個好公司的筆試都沒有通過,...

2011工作總結

1 編碼能力 實踐中,開始注重模型的概念。所謂模型打個比方 要做一台電視機,首先搞清楚你想怎麼使用它,目的是讓它看起來更方便易用。根據常規經驗判斷,電器需要電源 需要訊號,這兩點是必不可少。ok,那畫個草圖,電視要顯示,那我給它準備乙個顯示的東西,現實生活中,有以下標準可選 液晶顯示器,投影顯示器 ...