我有以下架構。
我有一個訂閱 Redis pub/sub 的微服務,有時負載會很高,我需要在 K8S 中制作一個水平 pod 自動縮放器,以便在處理所有 pub/sub 訊息的同時保持低延遲.
問題是,如果我使用 pub/sub 訊息將由每個 pod 處理,如果使用佇列,則 pod 需要對 Redis 進行輪詢以讀取所有訊息,那么,我如何使用模式或我需要使用或知道的方法?
謝謝。
uj5u.com熱心網友回復:
如果您希望擁有多個微服務實體來處理已發布的不同訊息(以便更快地耗盡佇列或保持低延遲),那么 Redis 發布/訂閱在這里不是正確的選擇,因為它有一個風扇-out 設計,這意味著相同的發布訊息將被分派給所有訂閱者。
您需要的是RabbitMQ或 Amazon SQS,它們允許您將多個消費者連接到同一個佇列,并且每個消費者正在處理不同的訊息。
SQS 中一個非常有用的功能是,當消費者接收訊息時,有一個稱為可見性超時的可配置時間范圍,在此期間其他消費者無法看到該訊息(因此無法處理它)。如果最初接收訊息的消費者沒有在該時間范圍內將其從佇列中洗掉,則該訊息將可供其他消費者使用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/485718.html
標籤:Kubernetes 雷迪斯 建筑学 微服务