写点什么

架构训练模块 7

作者:小马
  • 2022 年 6 月 12 日
  • 本文字数:409 字

    阅读完需:约 1 分钟

消息队列存储消息数据的 MySQL 表设计如下,将不同消息队列存储在同一张表里,以消息类型或时间进行分区。

消息类型表:

queue_name: varchar(64),消息队列名

queue_other_attributes: 消息队列其他的属性,可分为多个字段

 

queue_name: 作为主键

 

消息表:

id: bigint,消息 ID,自增长

msg_type: varchar(64),消息类型,取消息类型表的 queue_name 字段

message: text,消息内容

publisher: varchar(64),消息发布者唯一标识

publish_time: timestamp,消息发布时间

 

id:作为主键

publisher+publish_time:创建索引,方便发布者按时间查询自己发布了哪些消息

 

当消息增多时,可按消息类型或消息发布时间分区

 

消费表:

msg_id: bigint,消息 UUID,取消息表的 id 字段

consumer: varchar(64),消息消费者唯一标识

consume_time: timestamp,消息消费时间

 

consumer+ consume_time:作为主键,方便消费者按时间查询自己消费了哪些消息

msg_id: 创建索引,方便看一条消息被哪些消费者消费了

用户头像

小马

关注

还未添加个人签名 2017.12.26 加入

还未添加个人简介

评论

发布
暂无评论
架构训练模块 7_#架构训练营_小马_InfoQ写作社区