0
我們在ELK堆棧中使用Redis來緩衝我們的系統 和Elasticsearch之間的消息。消息由自定義的log4j-appender推送到redis中,並由logstash彈出。BLPOP和MISCONF Redis被配置爲保存RDB快照
現在出現了這樣的問題:如果redis隊列運行已滿(因爲Elasticsearch未運行),redis切換到模式不再允許持久性更改。這很有道理,但是從Redis彈出消息(因爲例如ES再次啓動)會減小redis中隊列的大小。
如果隊列已滿,是否可以選擇配置redis以允許blpop?
問候 本傑明
這種選擇的作品,但不是很強大。如果仍然有消息被push到redis而沒有被佔用(這種情況),redis將在稍後崩潰。 我認爲問題在於Redis會將BLPOP-Operation分類爲變異(當然是這樣),並且在隊列/ redis已滿的情況下將其嚴格封鎖爲RPUSH操作。這對於消息隊列來說不是一個好的行爲。如果隊列已滿,它應該只阻止推送附加數據。 另一種想法? –
您在Redis中沒有其他選項。請注意確保在磁盤上有一個位置以保存RDB快照。如果遇到MISCONF,請嘗試保存爲manualy。或者使用stop-writes-on-bgsave-error,並希望下次Redis嘗試保存RDB時,這將是成功的。 – misterion