架构实战营 - 模块八作业
作业:设计消息队列存储消息数据的 MySQL 表格
【作业要求】
1.包括表名、字段、索引;
2.用文字描述设计思路和理由,例如:为什么设计某个索引?
3.一页 ppt 借口。
【提示】
1.需要考虑每个消息队列一站表,还是所有消息放一张表,里面加一个队列名称的字段。
1)考虑到消息队列的消费可能是点对点,订阅模式的,设计上消息表和消息消费表分开。
2)消息表记录最多多少个消费,以及当前完成了多个确认消费。
3)消息队列只需要一个表,t_queue,用 uuid 字段分表
4)消息表索引设计
uuid 单独字段索引,这个是主要的查询字段
5)消费表索引设计
tag,ack_status 两个字段联合索引,用来查询哪些消息还没有被消费到;(说明,消息存入消息队列时根据订阅情况确定好消费组,提前写好消费表记录,消息确认状态=未消费)
评论