写点什么

架构实战营模块八作业

用户头像
竹林七贤
关注
发布于: 35 分钟前

【作业要求】

设计消息队列存储消息数据的 MySQL 表格

1.包括表名、字段、索引;

2.用文字描述设计思路和理由,例如:为什么设计某个索引?

3.一页 PPT 即可

【提示】

1.需要考虑每个消息队列一张表,还是所有消息放一张表,里面加一个“队列名称”的字段。


【设计思路】

  1. 消息队列主要是写入消息和读取消息,并保证读取过的消息及时删除。

  2. 为保证高可用,要使用并列的 2 到 3 组 mysql 进行主备配置,保证高可用。同时对数据进行分片,防止单列数据异常影响其他队列。

  3. 每个消息队列一张表,这样相比所有消息放一张表,隔离性更好,同时降低冲突概率。

  4. 消息 ID 自增,先收到的先读取。

  5. 为提升读写效率,采用两张表,日志表(数据写入)和消息表(数据消费)。在生产者发布消息时,首先写入日志表,服务端后台线程从日志表读取消息写入记录,将消息内容写入消息表中。消费者读取时,从消息表中读取。读取完成后,删除日志表和消息表的数据。


【表结构】

【日志表】


【消息表】


用户头像

竹林七贤

关注

还未添加个人签名 2020.08.13 加入

还未添加个人简介

评论

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