Spring Cloud Alibaba 搭建(RocketMQ篇)


  RocketMQ 是一款開源的分布式消息系統,還有其他rabbitMq、kafka等其他消息隊列組件,官方推薦RocketMQ更符合分布式開發系統。

一、下載RocketMQ

  官網地址:https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.3.2/rocketmq-all-4.3.2-bin-release.zip

  集群模式教程:https://github.com/apache/rocketmq/blob/master/docs/cn/operation.md

 

二、啟動 NameServer

  如果是雲服務器,建議使用公網IP,若使用內網IP容易出現問題。

nohup ./mqnamesrv -n 124.xxx.xxx.xxx:9876 &

 

三、啟動 Broker

  配置文件./config/broker.conf

......
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
# 如果雲服務,遠程調用需要配置,不然會默認內網192.168.x.x
brokerIP1=124.xxx.xxx.xxx

  調用broker,這里需要使用上面配置的broker.conf(若producer等都是本地,也可以不需要配置)

nohup ./mqbroker -n 124.xxx.xxx.xxx:9876 -c ../conf/broker.conf &

 

四、配置生產者

  例子代碼:https://github.com/alibaba/spring-cloud-alibaba/tree/master/spring-cloud-alibaba-examples/rocketmq-example

  打開idea中maven項目導入。

  其他基本都不需要改變,主要是application.properties配置文件需要修改。

......
#這個雲服務需要公網IP,如果本地則默認localhost:9876
spring.cloud.stream.rocketmq.binder.name-server=124.xxx.xxx.xxx:9876
......(下面省略)

  直接運行RocketMQProduceApplication類中的main方法,消息就會推送。可以看到控制台信息

 

 

 

四、配置消費者

  其他基本都不需要改變,主要是application.properties配置文件需要修改。

......
#這個雲服務需要公網IP,如果本地則默認localhost:9876 spring.cloud.stream.rocketmq.binder.name-server=124.xxx.xxx.xxx:9876 ......(下面省略)

  直接運行RocketMQConsumerApplication類中的mian方法,消息就會開始接收。控制台信息

 

 

 

五、RocketMQ控制台

  上面基本已經完成RocketMQ基本應用,但是看不到接收、發送等等信息,所以這里就有了RocketMQ控制台,這里也只需要配置一下即可。

  官網項目地址:https://github.com/apache/rocketmq-externals

  實際上是這里面的子項目rocketmq-console

 

  下載下來之后,也是導入idea中,然后開始配置application.properties

server.address=0.0.0.0
server.port=8111 #這里端口號......(省略)
#if this value is empty,use env value rocketmq.config.namesrvAddr  NAMESRV_ADDR | now, you can set it in ops page.default localhost:9876
rocketmq.config.namesrvAddr=124.xxx.xxx.xxx:9876  #這里就需要注意,Name Server雲服務公網ip
......(省略)

 配置完之后,直接打成jar,就可以運行。

java -jar rocketmq-console-2.0.0.jar > rocketmq-console.log &

 打開瀏覽器訪問http://127.0.0.1:8111就可以看到了,下圖的信息。

 

 

 六、總結

  消息隊列在微服務中有着不可忽視的作用,它有着異步、削峰(限流)、解耦的特征,在面對突發高峰等情況也能,很好的維持了服務的穩定性。

本來配置到第四步覺得RocketMQ竟然沒有控制台,原本令我略微失望。不過在查找材料發現他沒有集成在一起,只需要另外配置。

最后注意一點!!!項目放在雲服務最好開放端口10909、10911、10912這三個端口,雖然地址是10911端口,但是在運行期間發現10909、10911、10912三個端口竟然都會開啟服務。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM