亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Redis 發布/訂閱確認/確認

Redis 發布/訂閱確認/確認

Go
哈士奇WWW 2021-11-01 15:43:00
Redis Pub/Sub 中有確認的概念嗎?例如,當使用 RabbitMQ 時,我可以讓兩個工作人員在不同的機器上運行,當我將消息發布到隊列時,只有一個工作人員會確認/確認并處理消息。但是我發現使用 Redis Pub/Sub,兩個工作人員都會處理消息。考慮這個簡單的例子,我在兩臺不同的機器/客戶端上運行了這個 go 例程:go func() {    for {        switch n := pubSubClient.Receive().(type) {        case redis.Message:            process(n.Data)        case redis.Subscription:            if n.Count == 0 {                return            }        case error:            log.Print(n)        }    }}()當我發布消息時:conn.Do("PUBLISH", "tasks", "task A")兩個 go 例程都會接收它并運行 process 函數。有沒有辦法實現與 RabbitMQ 類似的行為?例如,第一個確認消息的工作人員將是唯一一個接收并處理它的工作人員。
查看完整描述

3 回答

?
隔江千里

TA貢獻1906條經驗 獲得超10個贊

Redis PubSub 更像是一種廣播機制。

如果你想要隊列,你可以使用BLPOPRPUSH來獲得相同的交互。請記住,RabbitMQ 會執行 Redis 中沒有的各種其他功能。但是,如果您正在尋找簡單的作業調度/請求處理風格,這將工作得很好。


查看完整回答
反對 回復 2021-11-01
?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

不,Redis 的 PubSub 不保證交付,也不限制可能收到消息的訂閱者的數量。


查看完整回答
反對 回復 2021-11-01
  • 3 回答
  • 0 關注
  • 193 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號