写点什么

架构实战营模块八作业

作者:Geek_d18264
  • 2021 年 11 月 15 日
  • 本文字数:448 字

    阅读完需:约 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: 创建索引,方便看一条消息被哪些消费者消费了

 

当消息增多时,可按消息消费时间分区


发现不足,持续改进,缓慢但是到来,期待那一天。

 

用户头像

Geek_d18264

关注

还未添加个人签名 2019.04.16 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营模块八作业