MQ 核心概念

发布于: 2020 年 07 月 08 日

Message Queue

队列

偏移量(Offset)

队列指针位置

消费偏移量

生产偏移量

队列语义

Queue 语义

一个队列只支持一个消费者。

Topic 语义(扇出 Fanout)

一个队列支持多个消费者,且消费都各自独立消费互不相关。

Broker

Topic

Partition

Producer

同步模式

性能差,保证数据的准确性

异步模式

Producer 内部内存队列缓冲消息,Broker 定时或定量批量发送。

性能高,有一定延迟, 重启服务可能丢失消息

Consumer

Consumer Group

不同消费者组可以消费同一个 Topic, 各自维护消费指针,相互之间没有影响。

同一 Consumer 组下的消费者可以同时消费多个 Partition,但两个 Consumer 不能同时消费一个 Partition。

消息存储

Data Node

数据分片保存

存储方式

磁盘文件

数据库

Data Node - DataBase

Partition - Table

mysql

一个物理数据库 10 个 mysql 实例,每个实例 99 个表。

fielddescid自增主键biz_id业务查询主键body消息体------

Metadata Model

Broker 消费模式

Push

Broker 端推,消费者端简单。Broker 需要维护状态。

Broker 可能会被堵塞,消息丢失

pull

最佳实践

负载均衡

Producer 和 Partition 之间

轮询

同一组 Consumer 和 Partition 之间

动态重平衡

消费者组中消费者变化,动态分配 Partition。

消费语义

At Least Once 至少一次交付

少部分消息可能会被消费多次,消费者端需要做幂等处理。

消息顺序性

Lag(Burrow)堆积

头指针和尾指针间的距离

扩展性

动态添加分区

分区热迁移

隔离性

通讯

开源项目

kafka

服务发现

Zookeeper

PMQ 2.0

架构

Metadata 管理

服务发现

Nginx + DNS

负载均衡

发布于: 2020 年 07 月 08 日 阅读数: 5
用户头像

陈皮

关注

还未添加个人签名 2018.04.26 加入

还未添加个人简介

评论

发布
暂无评论
MQ 核心概念