簡體   English   中英

RabbitMQ Shovel 卡在“已終止”狀態

[英]RabbitMQ Shovel Stuck in 'Terminated' Status

我們有一個問題,有時,一個動態 shovel(通過 HTTP API 創建: /api/parameters/shovel/src-delete-after設置為queue-length完成,然后而不是被刪除,卡在終止狀態。

后續嘗試通過以下任一方法刪除鏟子均未成功:

  1. DELETE發布到/api/parameters/shovel/
  2. rabbitmqctl delete_shovel
  3. rabbitmqctl clear_parameter -p <vhost> shovel <shovel_name>

鏟子甚至沒有出現在 RabbitMQ 管理 UI 的“鏟子管理”部分。

我們可以擺脫卡住的鏟子的唯一方法是重新啟動 RabbitMQ。

還有其他人有這個問題嗎? 如果是這樣,我們如何在不重新啟動集群的情況下清除鏟子? 另外,是否可以通過配置防止這種情況發生?

謝謝!

PS:

  1. RabbitMQ 版本:3.4.4
  2. 運行一個 2 節點集群(由於我們在網絡分區的情況下可能面臨的明顯問題,很快將使其成為 3 節點集群)。

RabbitMQ Shovel 卡在“已終止”狀態

您使用的是非常非常舊的 RabbitMQ 版本。 請升級到最新版本( 3.7.6 )並確保使用 Erlang 20.3.X (不是21 )。 如果您仍然可以重現此問題,請在rabbitmq-users郵件列表中報告。

我們使用的是 RMQ 3.7.13,Erlang 21.3.1。

問題發生的一種可能方式:

  • 3節點HA集群
  • 重啟其中一個節點(/etc/init.d/rabbitmq-server restart)
  • 舊鐵鍬和舊隊列以某種方式復活

無法使用問題中提到的任何方式刪除鏟子。 我能夠移除鏟子的唯一方法是禁用集群中所有 3 個節點上的鏟子插件,然后重新啟用每個節點上的每個插件,如下所示:

rabbitmq-plugins disable rabbit_shovel
rabbitmq-plugins enable rabbit_shovel
rabbitmq-plugins enable rabbit_shovel_management

至於舊隊列復活(隨機發生,不接觸任何東西......我稱它們為“僵屍”隊列),這個問題大約每月發生一次,所以我創建了 PostMan 腳本來刪除復活的隊列。 這是多年來一直存在的問題。 我們升級了 RMQ,希望能解決這個問題……但事實並非如此。 也許仲裁隊列是一個更強大的解決方案? 如果我有更多的時間來調查/實驗,我會的,但我已經被更高優先級的眼球埋沒了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM