【架构设计模块八】:设计消息队列存储消息数据的 MySQL 表格
前提
【作业要求】
1. 包括表名、字段、索引;
2. 用文字描述设计思路和理由,例如:为什么设计某个索引?
3. 一页 PPT 即可。
【提示】
1. 需要考虑每个消息队列一张表,还是所有消息放一张表,里面加一个“队列名称”的字段。
思路
每个消息队列一张表,还是所有消息放一张表:建议每个消息队列一张表,考虑 MySQL 单表存储性能压力,分表存储即可
除了基础消息表外,还需要记录每个消费者的 offset,即消息记录表
表设计
消息表
mq_record_[topic_name]:
NOTE:
id:保证消息自增
created_time:保证及时清理数据
消息记录表
mq_offset:
NOTE:
唯一索引:topic_name + consumer_id 保证消息唯一性及查询效率
版权声明: 本文为 InfoQ 作者【Ryoma】的原创文章。
原文链接:【http://xie.infoq.cn/article/fcce5ede0c515ddd1b436b9d8】。文章转载请联系作者。
评论