RocketMQ使用指南及參數詳解

文章目錄

  1. 一、使用指南
  2. 二、參數詳解

一、使用指南

  • 客戶端尋址方式

在代碼中指定NameServer地址

1
Producer.setNamesrvAddr(“192.168.8.106:9876”);

 

1
Consumer.setNamesrvAddr(“192.168.8.106:9876”);

 

Java啓動參數中指定NameServer地址

1
-Drocketmq.namesrv.addr=192.168.8.106:9876

 

環境變量指定NameServer地址·

1
export NAMESRV_ADDR=192.168.8.106:9876

 

  • http靜態服務器尋址

客戶端啓動後,會定時訪問一個靜態的HTTP服務器,地址如下:

http://jmenv.tbsite.net:8080/rocketmq/msaddr

這個URL的返回內容如下:

192.168.8.106:9876

客戶端默認每隔2分鐘訪問一次這個HTTP服務器,並更新本地的NameServer地址。URL已經在代碼中寫死,可通過修改/etc/hosts文件來改變要訪問的服務器,例如在/etc/hosts增加如下配置:

10.232.22.67 jmenv.taobao.net

二、參數詳解

  • 客戶端的公共配置類:ClientConfig
參數名默認值說明
NamesrvAddr NameServer地址列表,多個nameServer地址用分號隔開
clientIP 本機IP 客戶端本機IP地址,某些機器會發生無法識別客戶端IP地址情況,需要應用在代碼中強制指定
instanceName DEFAULT 客戶端實例名稱,客戶端創建的多個Producer,Consumer實際是共用一個內部實例(這個實例包含網絡連接,線程資源等)
clientCallbackExecutorThreads 4 通信層異步回調線程數
pollNameServerInteval 30000 輪訓Name Server 間隔時間,單位毫秒
heartbeatBrokerInterval 30000 向Broker發送心跳間隔時間,單位毫秒
persistConsumerOffsetInterval 5000 持久化Consumer消費進度間隔時間,單位毫秒
  • Producer配置
參數名默認值說明
producerGroup DEFAULT_PRODUCER Producer組名,多個Producer如果屬於一個應用,發送同樣的消息,則應該將它們歸爲同一組。
createTopicKey TBW102 在發送消息時,自動創建服務器不存在的topic,需要指定key
defaultTopicQueueNums 4 在發送消息時,自動創建服務器不存在的topic,默認創建的隊列數
sendMsgTimeout 10000 發送消息超時時間,單位毫秒
compressMsgBodyOverHowmuch 4096 消息Body超過多大開始壓縮(Consumer收到消息會自動解壓縮),單位字節
retryAnotherBrokerWhenNotStoreOK FALSE 如果發送消息返回sendResult,但是sendStatus!=SEND_OK,是否重試發送
maxMessageSize 131072 客戶端限制的消息大小,超過報錯,同時服務端也會限制(默認128K)
transactionCheckListener 事物消息回查監聽器,如果發送事務消息,必須設置
checkThreadPoolMinSize 1 Broker回查Producer事務狀態時,線程池大小
checkThreadPoolMaxSize 1 Broker回查Producer事務狀態時,線程池大小
checkRequestHoldMax 2000 Broker回查Producer事務狀態時,Producer本地緩衝請求隊列大小
  • PushConsumer配置
參數名默認值說明
consumerGroup DEFAULT_CONSUMER Consumer組名,多個Consumer如果屬於一個應用,訂閱同樣的消息,且消費邏輯一致,則應將它們歸爲同一組
messageModel CLUSTERING 消息模型,支持以下兩種1.集羣消費2.廣播消費
consumeFromWhere CONSUME_FROM_LAST_OFFSET Consumer啓動後,默認從什麼位置開始消費
allocateMessageQueueStrategy AllocateMessageQueueAveragely Rebalance算法實現策略
Subscription {} 訂閱關係
messageListener 消息監聽器
offsetStore 消費進度存儲
consumeThreadMin 10 消費線程池數量
consumeThreadMax 20 消費線程池數量
consumeConcurrentlyMaxSpan 2000 單隊列並行消費允許的最大跨度
pullThresholdForQueue 1000 拉消息本地隊列緩存消息最大數
Pullinterval 0 拉消息間隔,由於是長輪詢,所以爲0,但是如果應用了流控,也可以設置大於0的值,單位毫秒
consumeMessageBatchMaxSize 1 批量消費,一次消費多少條消息
pullBatchSize 32 批量拉消息,一次最多拉多少條
  • PullConsumer配置
參數名默認值說明
consumerGroup Conusmer組名,多個Consumer如果屬於一個應用,訂閱同樣的消息,且消費邏輯一致,則應該將它們歸爲同一組
brokerSuspendMaxTimeMillis 20000 長輪詢,Consumer拉消息請求在Broker掛起最長時間,單位毫秒
consumerPullTimeoutMillis 10000 非長輪詢,拉消息超時時間,單位毫秒
consumerTimeoutMillisWhenSuspend 30000 長輪詢,Consumer拉消息請求咋broker掛起超過指定時間,客戶端認爲超時,單位毫秒
messageModel BROADCASTING 消息模型,支持以下兩種:1集羣消費 2廣播模式
messageQueueListener 監聽隊列變化
offsetStore 消費進度存儲
registerTopics 註冊的topic集合
allocateMessageQueueStrategy Rebalance算法實現策略
  • Broker配置參數
    查看Broker默認配置
1
sh mqbroker -m
參數名默認值說明
consumerGroup Conusmer組名,多個Consumer如果屬於一個應用,訂閱同樣的消息,且消費邏輯一致,則應該將它們歸爲同一組
listenPort 10911 Broker對外服務的監聽端口
namesrvAddr Null Name Server地址
brokerIP1 本機IP 本機IP地址,默認系統自動識別,但是某些多網卡機器會存在識別錯誤的情況,這種情況下可以人工配置。
brokerName 本機主機名
brokerClusterName DefaultCluster Broker所屬哪個集羣
brokerId 0 BrokerId,必須是大等於0的整數,0表示Master,>0表示Slave,一個Master可以掛多個Slave,Master和Slave通過BrokerName來配對
storePathCommitLog $HOME/store/commitlog commitLog存儲路徑
storePathConsumeQueue $HOME/store/consumequeue 消費隊列存儲路徑
storePathIndex $HOME/store/index 消息索引存儲隊列
deleteWhen 4 刪除時間時間點,默認凌晨4點
fileReservedTime 48 文件保留時間,默認48小時
maxTransferBytesOnMessageInMemory 262144 單次pull消息(內存)傳輸的最大字節數
maxTransferCountOnMessageInMemory 32 單次pull消息(內存)傳輸的最大條數
maxTransferBytesOnMessageInDisk 65535 單次pull消息(磁盤)傳輸的最大字節數
maxTransferCountOnMessageInDisk 8 單次pull消息(磁盤)傳輸的最大條數
messageIndexEnable TRUE 是否開啓消息索引功能
messageIndexSafe FALSE 是否提供安全的消息索引機制,索引保證不丟
brokerRole ASYNC_MASTER Broker的角色 -ASYNC_MASTER異步複製Master -SYNC_MASTER同步雙寫Master -SLAVE
flushDiskType ASYNC_FLUSH 刷盤方式 -ASYNC_FLUSH異步刷盤 -SYNC_FLUSH同步刷盤
cleanFileForciblyEnable TRUE 磁盤滿,且無過期文件情況下TRUE表示強制刪除文件,優先保證服務可用 FALSE標記服務不可用,文件不刪除

 

轉自:https://www.cnblogs.com/xiaodf/p/5075167.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章