五分鐘技術(shù)趣談 | 城市平臺(tái)Kafka推送實(shí)現(xiàn)分析
Part 01
功能介紹
- 開發(fā)者控制臺(tái)功能
1.服務(wù)實(shí)例管理:Kafka集群實(shí)例配置信息及白名單管理。
2.數(shù)據(jù)統(tǒng)計(jì):統(tǒng)計(jì)單Topic、Group每日消息生產(chǎn)量及消費(fèi)量。
3.Topic管理:Topic基礎(chǔ)信息及訂閱關(guān)系管理。
4.Consumer Group管理:Group基礎(chǔ)信息及消費(fèi)狀態(tài)管理。
- 后臺(tái)管理系統(tǒng)
1.服務(wù)集群管理:提供Kafka集群實(shí)例添加及配置管功能。
2.授權(quán)用戶管理:為開發(fā)者配置Kafka集群實(shí)例及資源權(quán)限。
城市物聯(lián)網(wǎng)平臺(tái)實(shí)現(xiàn)的Kafka推送是在開源Apache Kafka 2.8.x版本上,增加了以用戶為維度的鑒權(quán)、授權(quán)機(jī)制以及資源管理功能,同時(shí)實(shí)現(xiàn)了與規(guī)則引擎的數(shù)據(jù)對接,通過配置規(guī)則引擎,將設(shè)備基礎(chǔ)數(shù)據(jù),感知數(shù)據(jù)等應(yīng)用數(shù)據(jù)推送給上層SaaS應(yīng)用,可以直接通過Kafka官網(wǎng)的客戶端消費(fèi)數(shù)據(jù)。
Part 02
Kafka推送優(yōu)勢
- 性能對比
Kafka具有低時(shí)延、高可用性的特性,吞吐量高,單機(jī)寫入TPS約在百萬條/秒,與物聯(lián)網(wǎng)設(shè)備數(shù)據(jù)量大的場景比較契合。
- 運(yùn)維實(shí)施
社區(qū)活躍,使用場景廣泛,部署實(shí)踐經(jīng)驗(yàn)較豐富、開源學(xué)習(xí)成本低,對于研發(fā)、運(yùn)維人員門檻低,能夠輕松完成應(yīng)用數(shù)據(jù)對接開發(fā)。
- 項(xiàng)目支撐
可同時(shí)支持多個(gè)應(yīng)用子系統(tǒng)的數(shù)據(jù)集成需求,減少內(nèi)部消息轉(zhuǎn)發(fā)業(yè)務(wù)研發(fā),同時(shí)可緩存部分?jǐn)?shù)據(jù);Kafka消息中間件,通用性強(qiáng)、適用范圍更廣,數(shù)據(jù)對接流程簡單。
Part 03
Kafka推送關(guān)鍵技術(shù)分析
城市平臺(tái)Kafka推送基于官方的客戶端實(shí)現(xiàn),通過官網(wǎng)客戶端提供的API進(jìn)行鑒權(quán),授權(quán)及資源隔離等操作。
- Kafka鑒權(quán)
基于SASL/SCRAM連接鑒權(quán),可以通過命令或者API創(chuàng)建、刪除用戶。
- Kafka授權(quán)
可以基于Topic、分組對用戶授權(quán),保證用戶的數(shù)據(jù)隔離。
- 資源隔離
可以基于用戶消費(fèi)、生產(chǎn)速率配額,限制帶寬。
- 關(guān)鍵API列舉