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的消息类型
架构图:
概要 Kiteq是一个分布式消息队列 它的实现是一种自组织形式,没有中心控制节点负责topic和consumer的管理,每个server自己将能处理的topic上报给zk,同时在zk上拉取topic与下游group的映射关系。 git地址与架构图 https://github.com/shineit/kiteq 流程如下 1. KiteQ启动会将自己可以接受和投递的Topics列表给到zookee
消息队列 MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。
AMQ 7 新变化 RH AMQ 7 是红帽针对新架构下发布的企业级消息平台,主要亮点有以下三个方面: 轻量级 - 基于 ActiveMQ Artemis 构建 AMQ Broker,非常轻量级,整个安装包 50 MB 分布式能力 - AMQ Interconnect 是位于 AMQ Broker 和客户端之间,可提供分布式消息路由处理机制,构建高扩展消息网络。 客户端扩展 - 支持多种客户端,包
WebSphere® MQ (也称MQSeries)以一致的、可靠的和易于管理的方式来连接应用程序,并为跨部门、企业范围的集成提供了可靠的基础。通过为重要的消息和事务提供可靠的、一次且仅一次的传递,Websphere MQ 可以处理复杂的通信协议,并动态地将消息传递工作负载分配给可用的资源。 这是一个商业的、巨贵的消息中间件,列在此处只是为了让您有个比较。
《分布式消息队列XXL-MQ》 XXL-MQ是一款轻量级分布式消息队列,支持 "并发消息、串行消息、广播消息、延迟消息、事务消息、失败重试、超时控制" 等消息特性。现已开放源代码,开箱即用。 特性 1、简单易用: 一行代码即可发布一条消息; 一行注解即可订阅一个消息主题; 2、轻量级: 部署简单,不依赖第三方服务,一分钟上手; 3、消息中心HA:消息中心支持集群部署,可大大提高系统可用性,以及消息
uncode-mq java轻量级消息中间件。 功能特点 消息存储速度非常快速。 使用简单方便,目前只支持topic方式。 依赖java环境。 说明:目前只在部分项目中使用,欢迎学习交流。 模块架构 说明:集群由多个Group组成一个队列,每个Group由Master和Salve两个Broker组成,整体无中心架构。 部署 1 下载文件解压umq-*.tar.gz到任意目录。 2 配置信息 在co
Open-MQ 是一个开源的消息中间件,类似IBM的 WebSphere MQ(MQSeries),采用 C++ 和 Qt 库编写的,支持Windows、Unix 以及 Mac OS 平台,支持 JMS。
测试环境 类型 配置 MySQL A + Canal Server Intel(R) Xeon(R) CPU E5-2430 0 @ 2.20GHz (24core 96G) MQ(kafka/RocketMQ) Intel(R) Xeon(R) CPU E5-2430 0 @ 2.20GHz (24core 96G) 测试方式 混合的DML场景测试 (模拟业务场景,小事务) 混合2张表的inse