MQ 存储消息的 MYSQL 表格设计
背景
MQ 一般由生产者集群,消费者组集群,broker 组成,如图:
其中 broker 通过主备复制保证高可用.
关于 MQ 消息 mysql 表格设计
目的:
随着业务的发展,队列 topic 数,消息量增多, 需要保证扩展性
作为中间价系统要保证高可用,高性能
为了方便管理 MQ,需要订阅关系表,发送记录表(含消息体内容),消费记录表
设计方案:
为了保证性能,扩展性:每一个队列的发送,消费表都是单独的
为了保障容灾:broker master 与 broker slave 不在同一个机房
表格设计:
订阅关系表:mq_relation
2.发送记录表:${topic}_mq_sender_log
sendtime 是索引字段,为了发送查询 topic 内容
3.消费记录表:${topic}_mq_consumer_log
consumer_time 字段索引是为了溯源消息
演进方案:
当 mysql 集群不再能负载业务 MQ 流量时,引入 HDFS,将发送者中的 msg_data 改成存储 HDFS 的 id。
因为 HDFS 本身就是分布式存储且硬件成本低,支持容量大。
评论