消息隊列 MQ 報錯 “Can not find name server”

今天遇到了這個問題 啓動項目時mq 報Can not find name server 這個 錯誤

此時 阿里雲建議是

https://help.aliyun.com/knowledge_detail/39131.html

總共三個步驟 然而我的並不是上面的問題 提交工單又太麻煩

仔細查看了一下代碼 

發現

 

配置地址時我寫的是 

PropertyKeyConst.ONSAddr 但我的地址是 PropertyKeyConst.NAMESRV_ADDR 導致報錯 看配置類註釋
ONSAddr 是 消息隊列服務接入點
NAMESRV_ADDR 是Name Server地址

rocketMQ 配置方法

gradle 引入 

compile 'com.aliyun.openservices:ons-client:1.8.0.Final'

maven

<dependency>
    <groupId>com.aliyun.openservices</groupId>
    <artifactId>ons-client</artifactId>
    <version>1.8.0.Final</version>
</dependency>

 生產者的配置

最後不要忘記了啓動 producer.start(); consumerBean..start();

消費者的配置

mqService.handleMQMessage(message) 是對這個消息的相關處理
成功就消費,失敗則讓消息重新發送
/**
 * 順序消息消費失敗進行重試前的等待時間 單位(毫秒)
 */
public static final String SuspendTimeMillis = "suspendTimeMillis";

/**
 * 消息消費失敗時的最大重試次數
 */
public static final String MaxReconsumeTimes = "maxReconsumeTimes";
properties 是可以設置消費失敗時重試的間隔時間和次數的

 

PropertyKeyConst.MessageModel 是容易配置錯誤的 

PropertyKeyConst.MessageModel 有兩種 

一種是廣播模式 每個消費者會消費一次 

BROADCASTING

一種是集羣消費模式 所有消費者消費一次

CLUSTERING

默認是集羣消費模式

如果只希望消費一次那就採用CLUSTERING 集羣消費模式

希望每個 服務消費一次則是 BROADCASTING 廣播模式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章