今天遇到了這個問題 啓動項目時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 廣播模式