启动mq 在虚拟机中_记在使用rocketmq client客户端过程中踩到的坑
前言
最近項目中使用阿里的RocketMQ來做消息隊列,具體怎么使用RocketMQ不在本文討論范圍之內,其相關幫助文檔可以參考如下鏈接
本文主要記錄在使用rocketmq client時,遇到的一些坑,作者采用的客戶端版本是4.5.0
踩到的坑
No route info of this topic
遇到這種情況的原因可能有
1、Broker禁止自動創建Topic,且用戶沒有通過手工方式創建Topic
解決方案
在啟動broker時加上autoCreateTopicEnable=true,如果是用broker.conf啟動,或者集群使用broker-*啟動,形如:
1nohup sh /oa/other/rocketmq/bin/mqbroker -c /oa/other/rocketmq/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 &
broker-a.properties配置文件中加入
1autoCreateTopicEnable=true
2、Broker沒有正確連接到Name Server
解決方案
查看broker.log日志信息
3、Producer沒有正確連接到Name Server
解決方案
切換到rocketmq的bin目錄,執行
1sh mqadmin clusterList -n 安裝rocketmqip地址:9876
如果出現
1
2#Cluster Name #Broker Name #BID #Addr #Version #InTPS(LOAD) #OutTPS(LOAD) #PCWait(ms) #Hour #SPACE
DefaultCluster broker-a 0 ip:10911 V4_5_0_SNAPSHOT 0.00(0,0ms) 0.00(0,0ms) 0 4 29243.32 0.2995
說明正常連接
4、防火墻原因
解決方案
關閉防火墻(生產環境不建議),開放rocketmq的相應端口,或者加入相應的可以訪問rocketmq的ip
5、topic的長度過長
這個有待驗證
connect to ip:10909 failed
產生原因:
rocketmq默認開啟了vip通道
解決方案:
在客戶端代碼層面加入
1
2producer.setVipChannelEnabled(false);
consumer.setVipChannelEnabled(false);
Send [3] times, still failed, cost [575]ms, Topic: Name, BrokersSent: [broker-a, broker-a, null]1
22021-01-06 12:11:49.531 [ok-cloud-payment-channel][ ERROR] [3550] [nio-8850-exec-5] [5dc31eff8580fe06] [3edd0a589ccc2355] [true] --- [ok.cloud.payment.channel.helper.MQHelper] [sendPaymentCallbackMQ] [106] : MQ send exception Send [3] times, still failed, cost [11]ms, Topic: Topic_Channel_Callback, BrokersSent: [TEST-V101, TEST-V102, TEST-V103]
See http://rocketmq.apache.org/docs/faq/ for further details.
1、如果出現開始發送消息成功,消費者接收消息后,再發送消息的話,出現上訴異常,則有很大概率是機器磁盤空間不足
解決方案:
(1)df -lh查看磁盤空間大小
(2)top查看%MEM%占用前五的進程
(3)按需刪除沒用的磁盤空間
2、檢查網絡是否暢通
3、如果是使用虛擬機,可能虛擬機中的網絡太多,rocketMQ在自動識別網絡的時候識別錯誤
解決方案:
可以把其他網絡down掉,或者把想用的那個網讓它排在前面
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的启动mq 在虚拟机中_记在使用rocketmq client客户端过程中踩到的坑的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 杭州公积金离职了,怎么取出来 有以下两种
- 下一篇: git push 的符号笔有什么用_Gi