日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

RocketMQ介绍与云服务器安装

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

RocketMQ

介紹與概念

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

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

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

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

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

核心概念

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

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

云服務器安裝RocketMQ

安裝RocketMQ

  • 下載: http://rocketmq.apache.org/docs/quick-start/, 直接下載源代碼版本
  • 上傳到云服務器
  • 開始操作(參考: 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. 進入文件夾: cd rocketmq 5. 使用maven進行源碼編譯: mvn -Prelease-all -DskipTests clean install -U 6. 進入文件夾: cd distribution/target/apache-rocketmq 7. 啟動服務: sh bin/mqnamesrv (注意如果內存小于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這種原因是內存不足導致的,默認是4G,解決辦法是編輯 bin/runserver.sh: JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
  • 以守護進程的方式啟動:
  • nohup sh bin/mqnamesrv & 這個命令可能會nohup: ignoring input and appending output to ‘nohup.out’,如果出現這個,執行: 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出現了Broker內存不足的問題: vim bin/runbroker.sh 修改 JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g" 的內容為: JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g"完成之后以守護進程的方式進行啟動: nohup sh bin/mqbroker -n localhost:9876 & tail -f nohup.out這個時候可以使用jps查看進程,并且可以根據進程號來kill進程
  • 進行測試:
  • export NAMESRV_ADDR=localhost:9876sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producersh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
  • 遠程連接需要開發9876和10911端口,在生產環境不要開放
  • 源碼安裝RcoketMQ4.X控制臺

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

    轉載于:https://www.cnblogs.com/wadmwz/p/10684631.html

    總結

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

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。