mq

1/5ページ

訊息服務百科全書——為什麼使用MQ

為什麼要使用MQ?有如下幾個好處: 解耦 在專案啟動之初來預測將來專案會碰到什麼需求,是極其困難的。訊息系統在處理過程中間插入了一個隱含的、基於資料的介面層,兩邊的處理過程都要實現這一介面。這允許你獨立的擴充套件或修改兩邊的處理過程,只要確保它們遵守同樣的介面約束。 冗餘 有些情況下,處理資料的過程 […]

使用rabbitmq 實現延遲消費

使用場景介紹 1、發版時經常需要不停機發版,遇到mq消費者,消費一半停機就會出現訊息丟失(沒有使用手動確認的情況) 2、例如支付場景,準時支付、超過未支付將執行不同的方案,其中超時未支付可以看做一個延時訊息。 3、例如滴滴、淘寶的自動評價都是類似場景(不一定是用的什麼技術) 我是發版的情況遇到了 可 […]

  • 2018.07.27
  • ,

1.MQ的幾種訊息傳遞方式

釋出訂閱模式 釋出訂閱模式有點類似於我們日常生活中訂閱報紙。每年到年尾的時候,郵局就會發一本報紙集合讓我們來選擇訂閱哪一個。在這個表裡頭列了所有出版發行的報紙,那麼對於我們每一個訂閱者來說,我們可以選擇一份或者多份報紙。比如北京日報、瀟湘晨報等。那麼這些個我們訂閱的報紙,就相當於釋出訂閱模式裡的to […]

  • 2018.07.25
  • ,

分散式任務佇列Celery

Celery (芹菜)是基於Python開發的分散式任務佇列。它支援使用任務佇列的方式在分佈的機器/程序/執行緒上執行任務排程。 結構 核心部件 broker 訊息佇列,由第三方訊息中介軟體完成 常見有RabbitMQ, Redis, MongoDB等 worker 任務執行器 可以有多個worke […]

Java應用beanstalkd訊息佇列

應用場景 最近做一個專案,處理每一個從佇列收到的訊息都要去獲取一個鎖(使用Redis實現的分散式鎖),如果沒有獲取到鎖,也不能把這個訊息給丟了,那可不可以把這個沒有獲取到鎖的訊息再發回佇列? 如果是用Kafka的話,訊息一發回佇列,馬上就消費,然而這時候還是獲取不到鎖,進入死迴圈了,影響效能。考慮把 […]