當前位置:編程學習大全網 - 編程語言 - 壹、RocketMQ及虛擬機環境搭建

壹、RocketMQ及虛擬機環境搭建

想系統學習下RocketMQ,所謂萬事開頭難,環境跑起來再說。

虛擬機:VirtualBox

最好不要用 網絡地址轉換(NAT)端口轉發 模式,RocketMQ在程序訪問的時候只需要填寫壹個NameSrv地址,但是會從NameSrv拿Broker的地址(Broker端口10911,假如本機地址 10.10.1.22,虛擬機地址10.10.1.23,妳的端口映射:10.10.1.22:10911 -> 10.10.1.23:10911,很不幸,RocketMQ會拿到10.10.1.23:10911去嘗試連接Broker,這必然是連接不上的,而且MQ報錯信息也很簡單粗暴,後面也會經常遇到: No route info of this topic XXX )

操作系統:Ubuntu 18.04

JDK:1.8?

之前采用的JDK12,坑比較多,JDK12對JVM部分做了調整,RocketMQ提供的配置是基於JDK1.8的,改了半天也沒有弄好

RocketMQ:4.4.0

搭建很簡單,裝好JDK,配置好環境變量,然後啟動NameSrv及Broker

Rocket目錄: ~/soft/rocketmq-all-4.4.0-bin-release ,之後的命令都是在這個目錄下執行的

虛擬機IP:10.1.11.115

nohup sh bin/mqnamesrv -n 10.1.11.155:9876 &

啟動成功後日誌顯示:The Name Server boot success. serializeType=JSON

nohup? sh bin/mqbroker -n 10.1.11.155:9876 -c conf/broker.conf autoCreateTopicEnable=true &

啟動成功後日誌顯示:

The broker[broker-a, 10.1.11.155:10911] boot success. serializeType=JSON and name server is 10.1.11.155:9876

註意斜體部分的配置文件: broker.conf ? 需要新增三行配置:

第壹行指定Name Server地址,第二行及第三行執行Broker的地址,為啥有倆,據說有壹個是給VIP通道用的,註意這裏用的IP都是具體的IP,建議不要使用 localhost 或者 127.0.0.1,不然有可能出現? No route info of this topic XXX

autoCreateTopicEnable 這個屬性,允許自動創建topic,我配置了這個,沒有毛線用處,沒有深究,都是手工創建的Topic,創建及查看Topic的cmd命令如下:

創建:sh bin/mqadmin updateTopic -n namesrv地址 -b broker地址 -t topic名稱

示例:sh bin/mqadmin updateTopic -n 10.1.11.115:9876 -b 10.1.11.115:10911 -t asdTopic

查看所有信息,含Topic :sh mqadmin topicList -n

NameServer 及 Broker啟動完畢後,可以用自帶的Tools模擬Producer及Consumer,命令如下:

首先要執行 export NAMESRV_ADDR=10.1.11.155:9876, 告訴 Producer 和 Consumer Name Server 的地址

啟動Producer,該Producer會產生壹批數據推送到MQ

命令:sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

最後啟動Consumer接收Producer發送的消息

命令:sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

關閉 broker :sh bin/mqshutdown broker

關閉 name server:sh bin/mqshutdown namesrv

這壹篇主要是MQ的搭建及基礎驗證,參考? http://rocketmq.apache.org/docs/quick-start/ ,下壹篇主要是通過JAVA模擬Producer及Consumer。

  • 上一篇:用人工智能繪制插圖的步驟——如何做人工智能插圖
  • 下一篇:壓力與流速怎麽計算的?
  • copyright 2024編程學習大全網