您好,登錄后才能下訂單哦!
這篇文章主要介紹Apache RocketMQ如何實現單機部署,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
直接使用一般就下載已經編譯好的二進制文件就好了,下載好以后
> unzip rocketmq-all-4.3.0-bin-release.zip
> cd rocketmq-all-4.3.0-bin-release/
> nohup sh bin/mqnamesrv &
tail一下日志看看是否已經啟動成功
> tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success...
> nohup sh bin/mqbroker -n localhost:9876 &
tail一下日志看看是否已經啟動成功
> tail -f ~/logs/rocketmqlogs/broker.log
The broker[%s, 172.30.30.233:10911] boot success...
為了簡單測試下,在發送/接收消息之前我們需要設置NAMESRV_ADDR
環境變量
> export NAMESRV_ADDR=localhost:9876
發送消息,測試用例中的方式是使用for循環發送了1000條消息
> sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
SendResult [sendStatus=SEND_OK, msgId= ...
接收消息
> sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
SendResult [sendStatus=SEND_OK, msgId= ...
> sh bin/mqshutdown broker The mqbroker(36695) is running... Send shutdown request to mqbroker(36695) OK
> sh bin/mqshutdown namesrv The mqnamesrv(36664) is running... Send shutdown request to mqnamesrv(36664) OK
到此,我們已經完成了一個簡單的部署以及消息的發送和接收,但是這只是在內網下進行的收發消息。
一開始按照官網的步驟來操作往往會直接啟動不起來,提示內存不足,那是因為name server和broker默認的啟動JVM內存是4G,而內存在不夠的情況下自然就啟動失敗了。
這時候需要修改name server和broker的啟動內存參數,
broker的啟動內存參數在runbroker.sh
下修改,windows下則是runbroker.cmd
name server的啟動內存參數是在runserver.sh
下修改,windows下則是runserver.cmd
在網上見過很多同學在配置外網訪問的時候出現問題,得到的提示大多是 No Topic Route Info
這種提示一般都是連接失敗了,
1.broker沒有允許自動創建topic,且發送消息對應的topic不存在
2.broker沒有正確的連接到name server
3.product沒有正確的連接到name server
對于情況1,在啟動broker
的時候添加autoCreateTopicEnable=true
參數就好了。
情況2呢,有可能是name server不存在或者是端口沖突,具體可以看日志的報錯原因。
情況3的話,一般是端口原因,如果在服務器上本地收發消息都正常但是到了用客戶端sdk發消息的時候失敗了可以首先查看一下端口本地ping服務器的9876端口和10911端口是否正常,如果正常可以關閉vip通道再次嘗試,以JAVA客戶端的話就是下面這樣
生產者關閉VIP通道:
producer.setVipChannelEnabled(false);
消費者關閉VIP通道:
consumer.setVipChannelEnabled(false);
關閉VIP通道為什么就可以了呢,是因為VIP通道占用了一個端口,10909端口,而服務器的10909端口沒有對外開放,所以導致失敗了。
這是我的broker.properties
配置文件
brokerClusterName = DefaultCluster brokerName = broker-a brokerId = 0 deleteWhen = 04 fileReservedTime = 48 brokerRole = ASYNC_MASTER flushDiskType = ASYNC_FLUSH brokerIP1=172.17.59.146 brokerIP2=172.17.59.146 namesrvAddr=172.17.59.146:5776 autoCreateTopicEnable=true
因為我沒有使用默認的9876端口,所以也有一個name server的配置文件,namesrv.conf
listenPort=5776
也可以直接下載我的broker.properties和namesrv.conf
使用自己的配置文件啟動name server和broker的時候都是添加一個指定文件的參數-c 文件路徑
以上是“Apache RocketMQ如何實現單機部署”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。