筆者遇到的丟失情況,在啟動neutron-server的時候 報錯如下
2019-03-28 19:50:14.383 26351 error oslo_service.service messagedeliveryfailure: unable
to connect to amqp server on db-vip:5672 after none tries: (0, 0): (403) access_refused
- login was refused using authentication mechanism amqplain. for details see the broker
logfile.
可發現與rabbitmq元件有關,用rabbitmqctl list_users發現缺少之前建立好的使用者openstack,其缺失的原因在於重啟後rabbitmq使用者資訊丟失,用如下命令新增使用者
rabbitmqctl add_user openstack openstack
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
rabbitmqctl set_user_tags openstack administrator
systemctl restart rabbitmq-server.service
為了確保下次重啟不致rabbitmq使用者丟失,作如下處理
echo 'nodename=rabbit@controller1' | sudo tee -a /etc/rabbitmq/rabbitmq-env.conf
############# 預設使用者@節點hostname
使用者丟失的真實原因,摘自引用如下
在部署配置完成後,重啟了一次伺服器,伺服器啟動後重新啟動rabbitmq服務,結果神奇的發現rabbitmq使用者丟失了。
原因如下:
rabbitmq資料是根據當前hostname作為node節點作為資料名儲存
# ls /data/program/rabbitmq/var/lib/rabbitmq/mnesia/
rabbit@centos7-01 [email protected] rabbit@centos7-01-plugins-expand
重啟伺服器之前我修改了hostname,所以重啟之後,rabbitmq服務使用新的hostname來儲存資料。
可以通過新增rabbitmq固定節點名字,保證資料檔案不變。
rabbitmq重啟丟失使用者資訊
一 rabbitmq資料是根據當前hostname作為node節點作為資料名儲存 二 新增rabbimq使用者 三 修改系統hostname sudo vim etc hostnameecho 127.0.0.1 info sudo tee a etc hosts sudo hostname f e...
RabbitMQ防止訊息丟失
rabbitmq中,訊息丟失可以簡單的分為兩種 客戶端丟失和服務端丟失。針對這兩種訊息丟失,rabbitmq都給出了相應的解決方案。回到目錄 如圖,生產者p向佇列中生產訊息,c1和c2消費佇列中的訊息,預設情況下,rabbitmq會平均的分發消費給c1c2 round robin dispatchi...
RabbitMQ防止訊息丟失
rabbitmq一般情況很少丟失,但是不能排除意外,為了保證系統高可用,我們必須作出更好完善措施,保證系統的穩定性。1.訊息持久化 2.ack確認機制 3.設定集群映象模式 4.訊息補償機制 第一種 訊息持久化 rabbitmq 的訊息預設存放在記憶體上面,如果不特別宣告設定,訊息不會持久化儲存到硬...