模块八作业
设计消息队列存储消息数据的 MySQL 表格
【作业要求】
1. 包括表名、字段、索引;
2. 用文字描述设计思路和理由,例如:为什么设计某个索引?
3. 一页 PPT 即可。
【提示】
1. 需要考虑每个消息队列一张表,还是所有消息放一张表,里面加一个“队列名称”的字段。
日志表+消息表,日志表用于消息的快速写入;每个消息队列一张消息表,多表设计有利于消除消息写入、消息读取、队列之间读取的相互影响;
发布消息时,首先写入到日志表,日志表写入成功就代表消息写入成功;后台线程再从日志表中读取消息写入记录,将消息内容写入到消息表中;
读取消息时,从消息表中读取;
日志表表名:t_mq_log,字段:log_id、queue_name、data、create_time;
消息表表名:队列名称(例如:t_que_user),字段:que_id、data、publish_time;
在写入消息表后,同步删除日志表中的数据,每天定时清除消息表中的历史数据,保留 10 天即可。
评论