RocketMQ實戰疑問和原理解答(實時更新)
Q1:怎麼解決remote toomuch exception的問題呢?
A:主要是的客戶端傳送的TPS太高,達到了broker的瓶頸。
Q2: broker無法寫入store.log的日誌報錯,報異常如下:
2018-12-17 14:09:37 WARN StoreScheduledThread1 - disk space will be full soon, but delete file failed.
2018-12-17 14:09:42 WARN SendMessageThread_1 - message store is not writeable, so putMessage is forbidden 16
2018-12-17 14:09:47 INFO StoreScheduledThread1 - physic disk maybe full soon, so reclaim space, 0.9246850495308918
R:物理檔案不能無限制的寫入磁碟,當磁碟空間達到閾值時,不再接受訊息,broker列印出日誌,訊息傳送失敗。
A:擴容 或者根據業務縮短commitlog在磁碟的儲存時間。或者調大diskMaxUsedSpaceRatio = 75的預設值到90。
Q3:如果在多topic下,併發對多個partition檔案寫入,相當於隨機io,所以效能不好,那rocketmq也會對多個consumerqueue寫入,為什麼就不會出現效能問題?
A:kafka與rocketmq的儲存區別在於:kafka是每個topic下會對應好幾個.log檔案;而rocketmq則是將所有的topic訊息都寫在了一個commitlog裡。當topic很多時,kafka下的.log檔案就會很多,而commitlog數量則不會受到影響(受影響的是consumequeue,但是consumequeue檔案大小很小,基本上都是在記憶體裡,不需要訪問磁碟)。
在topic很少時,kafka是順序讀,rocketmq是隨機讀,但是rocketmq基於os的pagecache,所以效能不會慢於順序讀。
在topic很多時,kafka檔案很多,就變成了隨機讀,效能會下降。rocketmq依然不受影響。
kafka記憶體不足時會將已經快取的資料swap到磁碟,同時再從磁碟讀取新資料。增加了磁碟IO,效能就降低了。
但是rocketmq 會盡可能利用OS的磁碟IO排程演算法(NOOP)以及PageCache,儘可能的減少磁碟IO。
相關文章
- 機器學習入門實戰疑問機器學習
- oracle疑問和解答Oracle
- chatGPT幫助開發實戰解答問題和反思ChatGPT
- Rocketmq原理&最佳實踐MQ
- 實戰與原理:如何基於RocketMQ實現分散式事務?MQ分散式
- 《EJB實用原理和實戰示例》中的實戰示例問題請教
- Kafka 原理和實戰Kafka
- RocketMQ實戰系列從理論到實戰MQ
- RocketMQ的原理與實踐MQ
- EJB實用原理和實戰示例
- RocketMQ 實戰(一) - 簡介MQ
- EJB實用原理和實戰示例 and more?
- 【RocketMQ】主從同步實現原理MQ主從同步
- GBDT+LR原理和實戰
- 關於租用香港伺服器疑問解答伺服器
- 關於租用香港伺服器疑問解答。伺服器
- 關於租用香港伺服器疑問解答?伺服器
- Windows XP 安裝問題疑難解答(轉)Windows
- 大資料儲存:MongoDB實戰指南——常見問題解答大資料MongoDB
- go-micro整合RabbitMQ實戰和原理GoMQ
- Delta Lake 資料湖原理和實戰
- 雲片 RocketMQ 實戰:Stargate 的前世今生MQ
- git - 實時更新Git
- Maven實戰與原理分析(二):maven實戰Maven
- nohup 原理及實戰
- bitMap原理及實戰
- webpack 原理與實戰Web
- Redis Sentinel-深入淺出原理和實戰Redis
- RocketMQ實戰--高併發秒殺場景MQ
- 從RabbitMQ平滑遷移到RocketMQ技術實戰MQ
- WPF的實時更新
- 實時更新顯示問題清高手幫忙!!
- 使用 Go、SSE 和 htmx 實時更新網站Go網站
- 精華推薦 | 【深入淺出RocketMQ原理及實戰】「效能原理挖掘系列」透徹剖析貫穿RocketMQ的事務性訊息的底層原理並在分析其實際開發場景MQ
- Android熱更新實現原理Android
- liferay的cache的實現疑問
- 關於JTA實現的疑問
- Keepalived 原理與實戰