架构实战 - 模块 8 作业
作业:设计消息队列存储消息数据的 MySQL 表格
【作业要求】
1. 包括表名、字段、索引;
2. 用文字描述设计思路和理由,例如:为什么设计某个索引?
3. 一页 PPT 即可。
【提示】
1. 需要考虑每个消息队列一张表,还是所有消息放一张表,里面加一个“队列名称”的字段。
作业内容
每个消息队列一张表。
好处:
消息量大的时候各种消息读写速度不相互影响
针对一个消息队列的数据处理和定位容易
坏处:
需要先找到消息队列表,再定位消息数据
消息队列很多时,会产生很多表
队列表
表名:queue
字段:
复制代码
索引 1: queue_id 为主键 有唯一索引
索引 2: queue_name 创建唯一索引
消息表
表名:message_{queue_id}
字段:
复制代码
索引 1:msg_sid 为主键 有唯一索引
索引 2:create_time 创建索引
消息消费表
表名: message_consumeroffset_{queue_id}
字段:
复制代码
索引:consumer_id + msg_sid 联合主键索引
评论