日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RocketMQ介绍与云服务器安装

發(fā)布時間:2025/7/25 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RocketMQ介绍与云服务器安装 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

RocketMQ

介紹與概念

在github上的說法來看: Apache RocketMQ是一個分布式消息傳遞和流媒體平臺,具有低延遲,高性能和可靠性,萬億級容量和靈活的可擴展性。它提供了多種功能:

  • 發(fā)布/訂閱消息模型和點對點
  • 預(yù)定的消息傳遞
  • 消息追溯性按時間或偏移量
  • 記錄流媒體的中心
  • 大數(shù)據(jù)集成
  • 可靠的FIFO和嚴(yán)格的有序消息傳遞在同一隊列中
  • 高效的推拉消費模式
  • 單個隊列中的百萬級消息累積容量
  • 多種消息傳遞協(xié)議,如JMS和OpenMessaging
  • 靈活的分布式橫向擴展部署架構(gòu)
  • Lightning-fast批處理消息交換系統(tǒng)
  • 各種消息過濾器機制,如SQL和Tag
  • Docker圖像用于隔離測試和云隔離集群
  • 功能豐富的管理儀表板,用于配置,指標(biāo)和監(jiān)控
  • 訪問控制列表
  • 消息跟蹤

上面都是官方列舉出來了,還有如下特點:

  • 支持Broker和Consumer端消息過濾
  • 支持拉pull和推push兩種消費模式,也就是上面說的推拉消費模式
  • 支持單master節(jié)點,多master節(jié)點,多master節(jié)點多slave節(jié)點
  • 消息失敗重試機制,支持特定level的定時消息
  • 新版本底層采用Netty

官方網(wǎng)站: http://rocketmq.apache.org/docs/motivation/ 也對RocketMQ和ActiveMQ以及Kafka做了一個對比.

核心概念

參考: http://rocketmq.apache.org/docs/core-concept/ 本人英文閱讀能力有點弱,大家請看官方文檔.

  • Producer: 消息生產(chǎn)者
  • Producer Group: 消息生產(chǎn)者組,發(fā)送同類消息的一個消息生產(chǎn)組
  • Consumer: 消息消費者
  • Consumer Group: 消費同類消息的多個實例
  • Tag: 標(biāo)簽.子主題對topic的進(jìn)一步細(xì)化,用于區(qū)分同一個主題下的不同業(yè)務(wù)的消息.
  • Topic: 主題,queue是消息的物理管理單位,而topic是邏輯管理單位,一個topic下可以有多個queue,默認(rèn)自動創(chuàng)建是4個,手動創(chuàng)建是8個.
  • Message: 消息,每個Message必須指定一個topic
  • Broker: MQ程序,接受生產(chǎn)的消息,提供給消費者消費的程序
  • Name Server: 給生產(chǎn)和消費者提供路由信息,提供輕量級的服務(wù)發(fā)現(xiàn)、路由、元數(shù)據(jù)信息,可以多個部署,互相獨立(比zookeeper更輕量)
  • Offset: 偏移量,可以理解為消息進(jìn)度
  • commit log: 消息存儲會寫在Commit log文件里面

云服務(wù)器安裝RocketMQ

安裝RocketMQ

  • 下載: http://rocketmq.apache.org/docs/quick-start/, 直接下載源代碼版本
  • 上傳到云服務(wù)器
  • 開始操作(參考: http://rocketmq.apache.org/docs/quick-start/):
  • 1. 安裝unzip命令: yum install unzip 2. 解壓: unzip rocketmq-all-4.4.0-source-release.zip 3. 重命名: mv rocketmq-all-4.4.0 rocketmq 4. 進(jìn)入文件夾: cd rocketmq 5. 使用maven進(jìn)行源碼編譯: mvn -Prelease-all -DskipTests clean install -U 6. 進(jìn)入文件夾: cd distribution/target/apache-rocketmq 7. 啟動服務(wù): sh bin/mqnamesrv (注意如果內(nèi)存小于4G可能會失敗)
  • 啟動失敗的原因與解決:
    • 啟動失敗的原因與解決:
    [root@iZwz94sw188z3yfl7lpmmsZ apache-rocketmq]# sh bin/mqnamesrvJava HotSpot(TM) 64-Bit Server VM warning: Using the DefNewyoung collector with the CMS collector is deprecated and willlikely be removed in a future releaseJava HotSpot(TM) 64-Bit Server VM warning:UseCMSCompactAtFullCollection is deprecated and will likely beremoved in a future release.Java HotSpot(TM) 64-Bit Server VM warning: INFO:os::commit_memory(0x00000006ec800000, 2147483648, 0) failed;error='Cannot allocate memory' (errno=12)## There is insufficient memory for the Java Runtime Environmentto continue.# Native memory allocation (mmap) failed to map 2147483648 bytesfor committing reserved memory.# An error report file with more information is saved as:# /usr/local/software/rocketmq-all-4.4.0/distribution/target/apache-rocketmq/hs_err_pid8993.log這種原因是內(nèi)存不足導(dǎo)致的,默認(rèn)是4G,解決辦法是編輯 bin/runserver.sh: JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
  • 以守護進(jìn)程的方式啟動:
  • nohup sh bin/mqnamesrv & 這個命令可能會nohup: ignoring input and appending output to ‘nohup.out’,如果出現(xiàn)這個,執(zhí)行: tail -f nohup.out這個時候ctrl+c就不會退出程序,僅僅是讓程序后臺運行
  • 啟動Broker
  • [root@wangzhi apache-rocketmq]# sh bin/mqbroker -n localhost:9876 Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000005c0000000, 8589934592, 0) failed; error='Cannot allocate memory' (errno=12) # # There is insufficient memory for the Java Runtime Environment to continue. # Native memory allocation (mmap) failed to map 8589934592 bytes for committing reserved memory. # An error report file with more information is saved as: # /usr/local/software/rocketmq/distribution/target/apache-rocketmq/hs_err_pid3012.log出現(xiàn)了Broker內(nèi)存不足的問題: vim bin/runbroker.sh 修改 JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g" 的內(nèi)容為: JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g"完成之后以守護進(jìn)程的方式進(jìn)行啟動: nohup sh bin/mqbroker -n localhost:9876 & tail -f nohup.out這個時候可以使用jps查看進(jìn)程,并且可以根據(jù)進(jìn)程號來kill進(jìn)程
  • 進(jìn)行測試:
  • export NAMESRV_ADDR=localhost:9876sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producersh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
  • 遠(yuǎn)程連接需要開發(fā)9876和10911端口,在生產(chǎn)環(huán)境不要開放
  • 源碼安裝RcoketMQ4.X控制臺

  • 上傳源碼包
  • 解壓: unzip rocketmq-externals-master.zip
  • 進(jìn)入文件夾: cd rocketmq-externals-master
  • 開始操作:
  • 先修改兩個BUG,一個是修改pom.xml的版本號.cd rocketmq-console/vim pom.xml : 將里面的rocketmq的版本號后面的snashop刪掉,只留個4.4.0就好 在上一個console的路徑下繼續(xù):cd src/main/resources/vim application.properties : 修改nameserver地址 rocketmq.config.namesrvAddr=127.0.0.1:9876 返回到console目錄,進(jìn)行編譯安裝:mvn clean package -Dmaven.test.skip
  • 啟動:
  • cd targetjava -jar rocketmq-console-ng-1.0.0.jar使用ctrl + c關(guān)閉程序,以守護進(jìn)程的方式進(jìn)行啟動nohup java -jar rocketmq-console-ng-1.0.0.jar & tail -f nohup.out

    轉(zhuǎn)載于:https://www.cnblogs.com/wadmwz/p/10684631.html

    總結(jié)

    以上是生活随笔為你收集整理的RocketMQ介绍与云服务器安装的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。