rocketmq是什麼
是由阿里捐贈給apache的一款分布式、佇列模型的開源訊息中介軟體,經歷了雙十一的洗禮。
rocketmq的發展史
rocketmq的特性
rocketmq 基本概念
producer:
訊息生產者,負責生產訊息,一般有業務系統負責生產訊息。
consumer:
訊息消費者,負責消費訊息,一般是後台系統負責非同步消費。
push consumer:
封裝訊息拉取,消費程序和內部
pull consumer:
主動拉取訊息,一旦拉取到訊息,應用的消費程序進行初始化。
producer group:
一類producer的集合名稱,這類producer通常傳送這一類訊息,且傳送邏輯一致。
consumer group:
一類consumer的集合名稱,這類consumer通常消費這一類訊息,且消費邏輯一致。
broker:
訊息中轉角色,負責儲存訊息、傳送訊息,這裡就是rocketmq server。
topic:
訊息的主題,在服務端定義和配置,消費者可以按照主題進行訂閱,也就是訊息分類,通常乙個系統乙個topic。
message:
在生產者、消費者、伺服器之間傳遞的訊息,乙個message必屬於乙個topic。
namesrv:
乙個無狀態的名稱服務,可以集群部署,每乙個broker啟動的時候都會向名稱伺服器註冊,要是接受broker的註冊,接受客戶端的路由請求並返回路由資訊。
partition:
分割槽,topic物理上的分組,乙個topic可以分為多個分割槽,每個分割槽就是乙個有序的佇列。分割槽中的 每條訊息都會分配給乙個有序的id,即偏移量。
tag:
用於對訊息進行過濾,理解為message的標記,同一業務不同目的的message可以用相同的topic,但是可以用tag來區分。
key:
訊息的key欄位是為了唯一表示訊息,方便查問題,不是說必須設定,設定了可以方便開發和運維定位問題。比如,這個key可以是訂單id等。
環境準備
centos7 jdk1.8
wget
解壓:
unzip -d /usr/rocketmq-all-4.3.2-bin-release.zip
mv /usr/rocketmq-all-4.3.2-bin-release /usr/rocketmq
啟動nameserver:
nohup sh bin/mqnamesrv > ~/logs/rocketmqlogs/namesrv.log 2>&1 &
啟動broker
nohup sh bin/mqbroker -n localhost:9876 > ~/logs/rocketmqlogs/broker.log 2>&! &
停止 broker
bin/mqshutdown broker
停止 nameserver
bin/mqshutdown namesrv
驗證是否啟動成功
傳送訊息:
export namesrv_addr=localhost:9876
bin/tools.sh org.apache.rocketmq.example.quickstart.producer
接收訊息:
bin/tools.sh org.apache.rocketmq.example.quickstart.consumer
rocketmq客戶端
網易雲課堂學習 rocketMq批量訊息和事務訊息
為什麼使用批量訊息 在很多調優的時候,比如資料庫批量處理,有些請求進行合併傳送等都是類似批量的實現。rocketmq批量傳送也是為了追求效能,特別是在訊息數量非常大的時候,批量效果非常明顯。使用批量訊息的限制 使用批量訊息 官方教程 什麼是事務訊息 是指producer端傳送訊息事件和本地事務事件,...
網易雲課堂學習之VS相關
1 為開發好的專案檔案 如 在專案檔案screencapture中,只需保留框起來的兩個檔案即可 而且在框起來的screencapture裡的debug檔案也可以刪掉,整個檔案由75.4 mb變為33.1 kb。2 vs2013開發環境ide介紹 ps 資源檢視一般在開發mfc windows程式時...
網易雲課堂學習 redis持久化機制
持久化介紹 redis的資料都存放在記憶體中,如果沒有配置持久化,redis重啟後資料就丟失了,因此需要開啟redis的持久化功能,將資料儲存在磁碟上,當redis重啟後,就可以從磁碟中恢復資料。持久化的方式 rdb 在指定時間間隔對資料進行快照儲存。rdb方式 rdb的優點和缺點優點 缺點對效能影...