中國福建網(wǎng)

當(dāng)前位置:中國福建網(wǎng) > 科技 > 正文

信也科技PMQ消息系統(tǒng):易監(jiān)控、易維護(hù)的輕量級消息系統(tǒng)

作者: 編輯 來源:互聯(lián)網(wǎng) 發(fā)布時(shí)間:2021-01-21

┊文章閱讀:

1月20日,由信也科技NYSE:FINV自主研發(fā)的PMQ消息系統(tǒng)正式對外發(fā)布。該系統(tǒng)是信也科技在調(diào)研業(yè)界消息系統(tǒng)的基礎(chǔ)上研發(fā)的一款易于監(jiān)控、易于維護(hù)的輕量級消息系統(tǒng)。目前,其已在信也科技私有云平臺上穩(wěn)定運(yùn)行了四年,日消息量高峰時(shí)間超過30億條,高峰寫入超過20萬TPS異步模式。

據(jù)了解,消息系統(tǒng)在現(xiàn)代微服務(wù)系統(tǒng)中,起著至關(guān)重要的作用。不論是異步、解耦或削峰,都需使用到消息系統(tǒng)。而消息系統(tǒng)的穩(wěn)定性,對系統(tǒng)的整體穩(wěn)定性有著舉足輕重的意義。

信也科技PMQ消息系統(tǒng)的研發(fā)歷程并非一帆風(fēng)順。早在2016年之前,信也科技曾嘗試使用Kafka與RabbitMQ,彼時(shí)經(jīng)常面臨消息丟失、消息堆積等情況,嚴(yán)重影響了業(yè)務(wù)系統(tǒng)。自2016年年中以來,信也科技便著力開發(fā)PMQ消息系統(tǒng),并于2017年發(fā)布2.0版本,實(shí)現(xiàn)了基本的消息發(fā)送與消費(fèi)功能。自2017年年中開始研發(fā)3.0版本,至2018年年中,已實(shí)現(xiàn)重平衡、自助修改偏移等完善的消息治理功能。自2019年初發(fā)布的新版本,已逐漸實(shí)現(xiàn)了多語言、多環(huán)境等高級功能。

PMQ消息系統(tǒng)的整體架構(gòu)示意圖

PMQ消息系統(tǒng)的架構(gòu)可分為以下五部分:

第一,Admin Portal。用戶可在Admin Portal上創(chuàng)建Topic、消費(fèi)者組、訂閱Topic等常見操作。這些操作會(huì)生成對應(yīng)的元數(shù)據(jù)信息,而這些元數(shù)據(jù)信息會(huì)保存至Metadata數(shù)據(jù)庫中。

第二,Broker。Broker會(huì)定時(shí)將Metadata元數(shù)據(jù)信息同步至內(nèi)存中。當(dāng)Producer發(fā)送消息請求達(dá)到Broker時(shí),Broker會(huì)跟進(jìn)Topic對應(yīng)的元數(shù)據(jù)信息,將消息保存到相關(guān)的數(shù)據(jù)庫表中。Consumer也會(huì)根據(jù)元數(shù)據(jù)信息從數(shù)據(jù)庫中拉取相關(guān)的消息。

第三,Producer,消息發(fā)送方。當(dāng)Producer發(fā)送消息時(shí),會(huì)將消息發(fā)送到Broker集群中的任何一個(gè)實(shí)例,當(dāng)某個(gè)實(shí)例出現(xiàn)訪問異常時(shí),會(huì)自動(dòng)重試,將消息轉(zhuǎn)發(fā)到其他實(shí)例。

第四,Consumer,消息消費(fèi)方。當(dāng)消費(fèi)方啟動(dòng)時(shí),會(huì)完成消息消費(fèi)的注冊功能。注冊完成后Consumer會(huì)獲取到相關(guān)的元數(shù)據(jù)信息,Consumer會(huì)從Broker拉取消息進(jìn)行消費(fèi)。

第五,MySQL,消息存儲層。所有的Topic消息至少會(huì)保存在2個(gè)MySQL物理實(shí)例上,防止單點(diǎn)故障。每個(gè)MySQL物理機(jī)都有備份集群,當(dāng)某個(gè)MySQL集群出現(xiàn)問題時(shí),會(huì)自動(dòng)進(jìn)行主從切換,以此來保證MySQL的高可用。

同其他消息系統(tǒng)相比,PMQ消息系統(tǒng)采用了MySQL作為消息存儲層,最大程度地降低了消息系統(tǒng)的復(fù)雜性,易于運(yùn)維。此外,PMQ消息系統(tǒng)實(shí)現(xiàn)了Broker與存儲分離,可實(shí)現(xiàn)Broker與MySQL的水平擴(kuò)展。

依托于MySQL,PMQ消息系統(tǒng)可實(shí)現(xiàn)更豐富的治理功能。具體功能如下:

1、堆積告警。在PMQ控制臺中,可查看消息的發(fā)送與消費(fèi)情況,當(dāng)出現(xiàn)消息消費(fèi)堆積的情況時(shí),PMQ消息系統(tǒng)便發(fā)送告警消息給相關(guān)的負(fù)責(zé)人,通知其及時(shí)處理。

2、消息消費(fèi)與發(fā)送監(jiān)控。PMQ消息系統(tǒng)的客戶端內(nèi)置了監(jiān)控信息,可以監(jiān)控消息發(fā)送與消息消費(fèi)情況。特別內(nèi)置了消息消費(fèi)是否報(bào)錯(cuò),消費(fèi)耗時(shí)等監(jiān)控信息。

3、動(dòng)態(tài)調(diào)整線程數(shù)。消息在消費(fèi)過程中,經(jīng)常會(huì)遇到消息堆積的情況。當(dāng)相關(guān)負(fù)責(zé)人收到堆積告警時(shí),負(fù)責(zé)人可根據(jù)監(jiān)控情況來判斷是否可以增大線程數(shù)來加快消息消費(fèi)速度。消費(fèi)線程數(shù)可在后臺Portal界面動(dòng)態(tài)修改,實(shí)時(shí)生效,無需用戶修改代碼,重啟等操作。采用此方式,可非常迅速地解決消息堆積的情況。

4、動(dòng)態(tài)調(diào)整偏移量。消息在使用過程中,會(huì)遇到以下情況,當(dāng)消息消費(fèi)時(shí)可能會(huì)出現(xiàn)一些bug。當(dāng)bug修復(fù)完成后,可能需要重新消費(fèi)歷史消息,此時(shí)可在PMQ消息系統(tǒng)后臺控制頁面中,動(dòng)態(tài)調(diào)整偏移量,消費(fèi)方即可按照指定的偏移對歷史消息進(jìn)行重新消費(fèi),無需修改代碼實(shí)時(shí)生效。

5、動(dòng)態(tài)設(shè)置消費(fèi)者組黑白名單。在本地代碼開發(fā)時(shí),為了調(diào)試某個(gè)消費(fèi)邏輯代碼,需要將某個(gè)消費(fèi)者組指定給某個(gè)IP消費(fèi)。對于此場景開發(fā)人員可在PMQ消息系統(tǒng)后臺對某個(gè)消費(fèi)者組設(shè)置白名單,設(shè)置完成后,此消費(fèi)者組對應(yīng)的消息便會(huì)被指定IP消費(fèi)。同理,也可以設(shè)置黑名單,不允許某些IP消費(fèi)。對于此類需求用戶可在PMQ消息系統(tǒng)后臺自助操作,無需修改代碼,實(shí)時(shí)生效。

6、支持失敗消息。當(dāng)用戶在PMQ控制頁面中給某個(gè)消費(fèi)者組添加Topic訂閱時(shí),會(huì)自動(dòng)創(chuàng)建一個(gè)消費(fèi)者組與Topic對應(yīng)的失敗Topic,當(dāng)客戶端消息消費(fèi)失敗時(shí),會(huì)自動(dòng)將消費(fèi)失敗的消息發(fā)送至對應(yīng)的失敗Topic上,然后進(jìn)行重試消費(fèi),如果重試失敗,用戶可在消息查詢界面查看到消息消費(fèi)重試結(jié)果。

7、消息查詢。有相關(guān)權(quán)限的用戶,可在后臺檢索Topic歷史消息。

8、操作自助化。用戶可在PMQ消息系統(tǒng)后臺自助創(chuàng)建Topic,自助創(chuàng)建消費(fèi)者組,自助訂閱Topic,自助查看消息消費(fèi)情況、發(fā)送量、剩余量等信息。

9、權(quán)限控制與審計(jì)。PMQ消息系統(tǒng)權(quán)限管控采取的是誰創(chuàng)建誰負(fù)責(zé)的方式。同時(shí)用戶在后臺界面上的所有操作均會(huì)進(jìn)行日志記錄,便于操作審計(jì)。

10、多語言支持。PMQ通過Proxy代理的方式支持多語言。對于其他非Java類型的應(yīng)用,只要支持HTTP協(xié)議,即可進(jìn)行消息的發(fā)送與消費(fèi)。這樣PMQ只需維護(hù)一份代碼,即可支持所有的語言客戶端。

11、多環(huán)境支持。在測試環(huán)境中,為了支持多版本并行開發(fā),會(huì)出現(xiàn)多套環(huán)境的情況。PMQ消息系統(tǒng)支持消息在多環(huán)境中有序流轉(zhuǎn),同環(huán)境的消息默認(rèn)會(huì)被同環(huán)境的實(shí)例消費(fèi)。

12、監(jiān)控報(bào)表。PMQ消息系統(tǒng)后臺會(huì)自動(dòng)生成各類報(bào)表數(shù)據(jù),方便查看系統(tǒng)運(yùn)行情況。根據(jù)監(jiān)控報(bào)表數(shù)據(jù)可清晰地知曉系統(tǒng)的運(yùn)行情況,從而及時(shí)消除系統(tǒng)的資源隱患。

自2017年P(guān)MQ消息系統(tǒng)在信也科技上線以來,已穩(wěn)定運(yùn)行多年,且已接入了超過400多個(gè)應(yīng)用、2000多個(gè)實(shí)例,經(jīng)受住了生產(chǎn)實(shí)踐的考驗(yàn)。

此次信也科技將成熟的科技服務(wù)對外輸出與賦能,是堅(jiān)持探索創(chuàng)新的成果。未來,PMQ消息系統(tǒng)將引入消息軌跡、智能化運(yùn)維與分析、PMQ集群多活等相關(guān)的功能。并且PMQ消息系統(tǒng)會(huì)全面兼容Kafka、RocketMQ等消息系統(tǒng),使其他的消息系統(tǒng)也可使用到PMQ強(qiáng)大的治理功能。

樹高葉茂,系于根深。信也科技亦將不斷夯實(shí)根基,銳意進(jìn)取,在科技行業(yè)中繼續(xù)做敢于探路的“急先鋒”,積極響應(yīng)國家的號召,持續(xù)探索與發(fā)展科學(xué)技術(shù),推動(dòng)科技自立自強(qiáng),并加強(qiáng)與合作伙伴的溝通與交流,實(shí)現(xiàn)互利共贏發(fā)展。

  • 分類目錄
  • 軟文發(fā)布平臺
  • 勞務(wù)外包公司
  • 帆布水池
  • 運(yùn)維開發(fā)網(wǎng)
  • 小程序開發(fā)
  • 淘寶優(yōu)惠券
  • IT新聞
  • 淘寶erp
  • 植物提取物網(wǎng)
  • 站長網(wǎng)
  • 源碼論壇
  • 激光打標(biāo)機(jī)
  • 丹泊儀器
  • 礦山生態(tài)修復(fù)
  • 青島月子會(huì)所
  • 知識付費(fèi)
  • 辦公家具
  • 呱呱贊小程序
  • 淄博java培訓(xùn)
  • 小程序開發(fā)
  • seo外包公司
  • 盈江新財(cái)網(wǎng)
  • 工程拍照軟件
  • 速賣通論壇
  • 極客網(wǎng)
  • 甘州文化網(wǎng)
  • 優(yōu)鞋論壇
  • 寧波小程序開發(fā)
  • 域名論壇
  • 微軟crm
  • andon系統(tǒng)
  • 鄭州網(wǎng)站建設(shè)
  • seo學(xué)習(xí)網(wǎng)
  • 奢侈品回收
  • 一對一輔導(dǎo)
  • 黑客視野新聞