標籤:而且 殺毒 節點 compute clust windows class 工作管理員 停止
在目前這家公司,剛進公司的時候接手了一個服務,算是個比較完備的服務,其中幾台電腦之間通訊用到了rabbitmq,一開始沒出什麼問題,然後後來勒索病毒wanner cry來的時候,系服把所有伺服器裝了一個什麼殺毒軟體,重啟之後rabibtmq叢集就出現了一些問題,經過一番學習,把這些問題都搞定了,現在做一個總結。
一開始,我按照官網的描述,把四台伺服器加入了一個叢集,但是不知道為什麼,除了主節點外,另外三台都看不了叢集狀態,由於並不影響什麼,就先放在那沒管,其實想起來,是因為之前叢集的設定檔沒刪除,應該先把C:\Users\Administrator\AppData\Roaming下的RabbitMQ檔案夾刪除掉。後來,其中一台伺服器老是打出串連斷開的錯誤記錄檔,經過檢查,發現是rabbitmq設定的消費者端緩衝池滿了,所以才有這個log。處理了一下消費者端的消費問題,這個算是解決了。
由於之前那個設定檔一直沒刪除,導致後來叢集出現問題了,有兩台伺服器相繼從叢集中中斷連線,用rabbitmqctl join_cluster [email protected]命令嘗試串連進叢集的時候,會報一堆亂七八糟的錯誤。類似這種:
Error: {cannot_start_mnesia,
{{
shutdown
,{failed_to_start_child,mnesia_kernel_sup,killed}},
{mnesia_sup,start,[normal,[]]}}}
由於rabbitmq是用erlang寫的,安裝也基於erlang平台,而我又不懂erlang裡的方法,因此只能看出是erlang裡面報錯,但是並不知道怎麼解決,於是採用最原始暴力的手段,重裝erlang以及rabbitmq(其實把任務結束掉,再刪除前面的叢集設定檔就可以,不過當時並不知道,人總是有個慢慢熟悉的過程嘛)。其中三台伺服器比較正常,卸載rabbitmq和erlang,從工作管理員結束掉epmd.exe任務後,將安裝路徑下的殘留檔案刪除,再刪除掉叢集設定檔,重裝就搞定了。但是有一台伺服器很奇怪,刪除了rabbitmq後,服務裡居然它還在運行,而且還能停止和運行。感覺遇到鬼了的我一氣之下到註冊表裡找到rabbitmq的註冊資訊給刪了,然後就出問題了,雖然服務裡rabbitmq總算是停了,但是無論怎麼安裝再也起不來這個服務了,直接雙擊rabbitmq-server.bat啟動的話還會報C:\Program Files\erl7.0.3\erts-7.0.3\bin\erlsrv: Warning, could not set correct service description (comment)的錯誤。後來一氣之下,把HKLM/SOFTWARE/Ericsson/Erlang/ErlSrv下erlang的註冊表資訊一併刪了,重裝了erlang和rabbitmq再配叢集,就OK了。
windows上部署rabbitmq遇到的一些問題及解決方案