摘要:本地的安裝與調試標簽啟動進入的源碼項目。消息發送的高性能與低延遲。強大的消息堆積能力與消息處理能力。嚴格的順序消息存儲。保證消息至少被消費一次,但不承諾消息不會被消費者多次消費。其消息的冪等由消費者自己實現。
本地RocketMQ的安裝與調試
標簽:【RocketMQ】
1. 啟動進入RocketMQ-ALL的源碼項目。
執行maven打包:
mvn -Prelease-all -DskipTests clean install -U
進入打包好的文件
cd /Users/rtw/IdeaProjects/RocketMQ/distribution/target/apache-rocketmq/bin
進入distribution/conf. 將其中的broker.conf 、 logback_broker.xml、logback_namesrv.xml復制到rocketmq_all/conf下。
修改broker.conf 的配置:
brokerClusterName = DefaultCluster brokerName = broker-a brokerId = 0 deleteWhen = 04 fileReservedTime = 48 brokerRole = ASYNC_MASTER flushDiskType = ASYNC_FLUSH namesrvAddr=127.0.0.1:9876 #存儲路徑 storePathRootDir=/Users/rtw/IdeaProjects/RocketMQ/store #commitLog 存儲路徑 storePathCommitLog=/Users/rtw/IdeaProjects/RocketMQ/store/commitlog #消費隊列存儲路徑存儲路徑 storePathConsumeQueue=/Users/rtw/IdeaProjects/RocketMQ/store/consumequeue #消息索引存儲路徑 storePathIndex=/Users/rtw/IdeaProjects/RocketMQ/store/index #checkpoint 文件存儲路徑 storeCheckpoint=/Users/rtw/IdeaProjects/RocketMQ/store/checkpoint #Broker 的角色 #- ASYNC_MASTER 異步復制Master #- SYNC_MASTER 同步雙寫Master #- SLAVE brokerRole=ASYNC_MASTER #刷盤方式 #- ASYNC_FLUSH 異步刷盤 #- SYNC_FLUSH 同步刷盤 flushDiskType=ASYNC_FLUSH #checkTransactionMessageEnable=false #abort 文件存儲路徑 abortFile=/Users/rtw/IdeaProjects/RocketMQ/store/abort
運行org.apache.rocketmq.namesrv.NamesrvStartup,需要進行配置:
添加Environment variables: ROCKETMQ_HOME=/Users/rtw/IdeaProjects/RocketMQ
運行org.apache.rocketmq.broker.BrokerStartup,需要進行配置:
添加Environment variables: ROCKETMQ_HOME=/Users/rtw/IdeaProjects/RocketMQ
配置Program arguments,也就是項目的broker.conf的位置:
-c /Users/rtw/IdeaProjects/RocketMQ/conf/broker.conf
日志位置見RocketMQ/conf/logback_broker.xml.
運行org.apache.rocketmq.example.quickstart.Producer創建消息,注意需要添加producer.setNamesrvAddr("127.0.0.1:9876");
運行org.apache.rocketmq.example.quickstart.Consumer消費消息,注意添加consumer.setNamesrvAddr("127.0.0.1:9876");
2. RocketMQ
RocketMQ是一款高性能消息中間件,其核心的優勢:
可靠的消息存儲。
消息發送的高性能與低延遲。
強大的消息堆積能力與消息處理能力。
嚴格的順序消息存儲。
懂得取舍,消息中間件的理想狀態是一條消息能且只被消費一次,但要做到這一點必然需要犧牲性能。RocketMQ保證消息至少被消費一次,但不承諾消息不會被消費者多次消費。其消息的冪等由消費者自己實現。
2.1 設計理念
使用NameServer,摒棄了業內常用的Zookeeper充當信息管理的“注冊中心”。
因為Topic路由信息無須在集群之間保持強一致性,追求最終一致性,并且能容忍分鐘級的不一致。
高效的IO存儲機制。
容忍設計缺陷,RocketMQ保證消息至少被消費一次,但不承諾消息不會被消費者多次消費。其消息的冪等由消費者自己實現。
2.2 設計目標RocketMQ作為一款消息中間件,需要解決如下問題:
架構模式:
RocketMQ與大部分消息中間件一樣,采用發布訂閱模式,基本的參與組件主要包括:消息發送者、消息服務器(消息存儲)、消息消費、路由發現。
順序消息:
消息消費者按照消息達到消息存儲服務器的順序消費。
消息過濾:
RocketMQ消息過濾支持在 ==服務端== 與 ==消費端==的消息過濾機制。
消息在Broker端過濾。Broker可以只將消息消費者感興趣的消息發送給消息過濾機制。
消息在消費端過濾,消息過濾方式完全由消息消費者自定義,但缺點是有很多無效消息會從Broker傳輸到消費者。
消息存儲:
消息的堆積能力 和 消息存儲性能。RocketMQ追求消息存儲的高性能,引入內存映射機制,所有有主題的消息順存儲在同一個文件中。
消息高可用性:
消息到達(消費)低延遲:
確保消息必須被消費一次:
RocketMQ通過消息消費確認機制(ACK)來確保消息至少被消費一次,但由于ACK消息有可能丟失等其他原因,==RocketMQ無法做到消息只被消費一次,有重復消費的可能。==
3. 啟動參數brokerRole=?;SYNC_MASTER、ASYNC_MASTER、SLAVE。SYNC和ASYNC表示Master和Slave同步消息設置,SYNC的意思是當Slave和Master消息同步完成后,再返回發送成功的狀態。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/77523.html
摘要:前提通過前面兩篇文章可以簡單的了解和安裝,今天就將和整合起來使用。然后我運行之前的整合項目,查看監控信息如下總結整篇文章講述了與整合和監控平臺的搭建。 showImg(https://segmentfault.com/img/remote/1460000013232432?w=1920&h=1277); 前提 通過前面兩篇文章可以簡單的了解 RocketMQ 和 安裝 RocketMQ...
摘要:依次執行下面命令本地安裝從官方安裝包下載。管理界面提供多種管理方式命令行和界面等提供一個開源的擴展項目里面包含一個子項目配置下打個包就可以用了。 前言 github 開源項目--paascloud-master:https://github.com/paascloud/... paascloud-master 官方環境搭建:http://blog.paascloud.net/20...
摘要:當接收到消息后,會在方法中調用方法,將的信息塞進緩存中,并且會定時發送心跳將發送給進行注冊。這也說明了當用集群模式去創建時,集群里面每個的的數量相同,當用單個模式去創建時,每個的數量可以不一致。 微信公眾號「后端進階」,專注后端技術分享:Java、Golang、WEB框架、分布式中間件、服務治理等等。 老司機傾囊相授,帶你一路進階,來不及解釋了快上車! 我還記得第一次使用rocket...
摘要:但是服務器又確實是收到了這條消息的,只是給客戶端的響應丟失了,所以導致的結果就是扣款失敗,成功發貨。所有的半消息都會寫在為的半消息隊列里,并且每條半消息,在整個鏈路里會被寫多次,如果并發很大且大部分消息都是事務消息的話,可靠性會存在問題。 前言 得益于MQ削峰填谷,系統解耦,操作異步等功能特性,在互聯網行業,可以說有分布式服務的地方,MQ都往往不會缺席。由阿里自研的RocketMQ更是...
摘要:但是服務器又確實是收到了這條消息的,只是給客戶端的響應丟失了,所以導致的結果就是扣款失敗,成功發貨。既然消息的發送不能和本地事務寫在一起,那如何來保證其整體具有原子性的需求呢答案就是今天我們介紹的主角事務消息。 前言 得益于MQ削峰填谷,系統解耦,操作異步等功能特性,在互聯網行業,可以說有分布式服務的地方,MQ都往往不會缺席。由阿里自研的RocketMQ更是經歷了多年的雙十一高并發挑戰...
閱讀 2908·2021-11-23 09:51
閱讀 1554·2021-11-15 11:36
閱讀 3013·2021-10-13 09:40
閱讀 1893·2021-09-28 09:35
閱讀 13075·2021-09-22 15:00
閱讀 1372·2019-08-29 13:56
閱讀 2929·2019-08-29 13:04
閱讀 2702·2019-08-28 18:06