写点什么

架构实战营模块 8 作业

作者:星夜
  • 2022 年 7 月 31 日
  • 本文字数:395 字

    阅读完需:约 1 分钟

架构实战营模块 8 作业

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

【作业要求】

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

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

3. 一页 PPT 即可。

【提示】

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


一、设计方案


考虑到 MySQL 单表性能,所以采用每个消息队列单独保存一张数据表。


  • 优点:

  • 队列之间解耦,并且数据隔离。

  • 实现简单、性能高。

  • 缺点:

  • 需要的资源多于单表。

  • 维护成本略高于单表方案。

1.1 表设计

1.1.1 表名规则


表名:{topic}_message


说明:每个队列一张表,数据表在创建 topic 时生成。

1.1.2 字段设计

1.2 处理逻辑

1.2.1 生产消息

  • 消息队列服务获取 TOPIC 名称 消息体 后进行处理

  • 根据表名规则由 TOPIC 名称 找到对应的消息表进行数据写入,如未找到表则创建新表。

1.2.2 消费消息

消费者节点轮询拉取消费状态为 未消费 的数据进行消费。

消费成功后更新 消费时间 并且修改消费状态为 已消费


发布于: 刚刚阅读数: 5
用户头像

星夜

关注

还未添加个人签名 2018.05.07 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营模块 8 作业_架构实战营_星夜_InfoQ写作社区