KiteQ是一个基于go+protobuff实现的多种持久化方案的mq框架(消息队列)。
特性:
* 基于zk维护发送方、订阅方、broker订阅发送关系、支持水平、垂直方面的扩展* 基于与topic以及第二级messageType订阅消息* 基于mysql、文件存储方式多重持久层消息存储* 保证可靠异步投递* 支持两阶段提交分布式事务工程结构:
kiteq/├── README.md├── binding 订阅关系管理处理跟ZK的交互├── build.sh 安装脚本├── client KiteQ的客户端├── doc 文档├── handler KiteQ所需要的处理Handler├── kite_benchmark_xxx.go KiteQ的Benchmark程序├── kiteq.go KiteQ对外启动入口├── protocol KiteQ的协议包,基于PB和定义的Packet├── server KiteQ的Server端组装需要的组件├── stat 状态信息统计└── store KiteQ的存储结构概念:
* Binding:订阅关系,描述订阅某种消息类型的数据结构* Consumer : 消息的消费方* Producer : 消息的发送方* Topic: 消息的主题比如 Trade则为消息主题,一般可以定义为某种业务类型* MessageType: 第二级别的消息类型,比如Trade下存在支付成功的pay-succ-200的消息类型架构图:
评论