開篇
周末抽空去參加了rocketmq杭州站的Meetup,雖然之前閱讀過rocketmq的一些源碼,不過本身不是專業運維消息中間件的是以相對的運維經驗不足,在跟公司的中間件普大神聊天的時候提到了一些問題,剛好趁這次機會一起請教了。
整個分享過程中有兩個問題印象比較深刻:1、master/slave的主從配置下slave重新開機會重新拷貝master資料導緻master的寫性能下降;2、現有架構下的broker的擴容思路以及未來broker的讀寫分離架構,寫個文章記錄下。
針對問題一:現有mq的主從同步方式沒辦法進行限流,提出一個思路就是如果master因為主從同步導緻master寫入性能下降那麼在條件允許的情況下實作master的寫禁止。
針對問題二:現有mq的架構下也可以通過巧用mq的寫禁止來實作無縫擴容,擴容思路見下面的圖解,額外補充一句:這部分思路純屬個人交流沒有實戰操作經驗,供探索。
擴容思路
說明:
- 1、 假設原來的broker叢集有兩個broker節點,由于容量估算導緻磁盤空間不足。
- 2、 思路一:如果考慮消息可丢失可以通過删除一部分commitlog來釋放空間。
- 3、 思路二:通過擴容broker來實作磁盤空間的可擴容。
- 1、 步驟一:新增3台broker節點,與原來2台broker節點組成5個broker節點叢集。
- 2、 步驟二:由于舊叢集的broker依然會進行資料寫入,磁盤空間依舊告急。
- 3、 步驟三:對舊叢集的2台broker通過admin配置指令禁止資料寫入但依然允許讀操作。
- 4、 效果:通過寫禁止解決原broker叢集的磁盤空間問題,通過原broker的讀允許保證資料依然能夠消費。
未來的架構
- 1.、mq的未來版本當中會針對broker進行改造,針對broker層會實作計算和存儲的分離。
- 2、 計算存儲分離之後,broker的功能會退化成讀寫層,變成無狀态的一層。
- 3、 計算存儲分離之後,存儲層會提供存儲擴容功能,具體的細節等mq的版本釋出再看。
招聘資訊
【招賢納士】
歡迎熱愛技術、熱愛生活的你和我成為同僚,和貝貝共同成長。
貝貝集團誠招算法、大資料、BI、Java、PHP、android、iOS、測試、運維、DBA等人才,有意可投遞
[email protected]。
貝貝集團建立于2011年,旗下擁有貝貝網、貝店、貝貸等平台,緻力于成為全球領先的家庭消費平台。
貝貝創始團隊來自阿裡巴巴,先後獲得IDG資本、高榕資本、今日資本、新天域資本、北極光等數億美金的風險投資。
公司位址:杭州市江幹區普盛巷9号東谷創業園(上下班有多趟班車)