写点什么

架构实战 - 模块八

作者:唐敏
  • 2022 年 1 月 04 日
  • 本文字数:401 字

    阅读完需:约 1 分钟

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

【作业要求】

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

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

3. 一页 PPT 即可。

【提示】

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


消息队列系统架构


设计思路

根据消息队列架构拆分几大核心模块:生产者(Producer)、消息主题(Topic)、消费组(Consumer Group)、消费者(Consumer)

那么设计消息的时候,就需要贯穿这 5 个模块,从生产者发布消息,到指定主题队列,消费者订阅主题,消费者组内成员从指定的主题中某个队列获取消息,为了能够让消息走完这样的流程,消息的存储模型两种:消息表和主题表,具体数据库表设计如下:

其中,t_message 表种 message_id、topic_id 和 queue_id 三者创建符合索引,以 message_id 为做左侧前导列,主要在于消息创建之后,发送和消费的时候要对消息做状态更新,需要从海量消息找到所需要更新消息。


用户头像

唐敏

关注

还未添加个人签名 2020.12.07 加入

还未添加个人简介

评论

发布
暂无评论
架构实战 - 模块八