KiteQGo 的 MQ 框架
KiteQ 是一個(gè)基于 go + protobuff 實(shí)現(xiàn)的多種持久化方案的 mq 框架(消息隊(duì)列)。
特性:
* 基于zk維護(hù)發(fā)送方、訂閱方、broker訂閱發(fā)送關(guān)系、支持水平、垂直方面的擴(kuò)展 * 基于與topic以及第二級(jí)messageType訂閱消息 * 基于mysql、文件存儲(chǔ)方式多重持久層消息存儲(chǔ) * 保證可靠異步投遞 * 支持兩階段提交分布式事務(wù)
工程結(jié)構(gòu):
kiteq/ ├── README.md ├── binding 訂閱關(guān)系管理處理跟ZK的交互 ├── build.sh 安裝腳本 ├── client KiteQ的客戶端 ├── doc 文檔 ├── handler KiteQ所需要的處理Handler ├── kite_benchmark_xxx.go KiteQ的Benchmark程序 ├── kiteq.go KiteQ對(duì)外啟動(dòng)入口 ├── protocol KiteQ的協(xié)議包,基于PB和定義的Packet ├── server KiteQ的Server端組裝需要的組件 ├── stat 狀態(tài)信息統(tǒng)計(jì) └── store KiteQ的存儲(chǔ)結(jié)構(gòu)
概念:
* Binding:訂閱關(guān)系,描述訂閱某種消息類(lèi)型的數(shù)據(jù)結(jié)構(gòu) * Consumer : 消息的消費(fèi)方 * Producer : 消息的發(fā)送方 * Topic: 消息的主題比如 Trade則為消息主題,一般可以定義為某種業(yè)務(wù)類(lèi)型 * MessageType: 第二級(jí)別的消息類(lèi)型,比如Trade下存在支付成功的pay-succ-200的消息類(lèi)型
架構(gòu)圖:
評(píng)論
圖片
表情
