写点什么

架构实战营 10 期 - 作业 8

作者:炮仗
  • 2023-02-28
    上海
  • 本文字数:397 字

    阅读完需:约 1 分钟

设计思路:

一个 topic 一张表

避免队列之间相互影响,避免队列较多而且消息量大的情况下会影响查询消息和写入消息的性能,所以一个 topic 一张表。


消息表设计:

用于记录消息主体

创建 topic 时创建一张 topic 的表,例如 topic_msg_xxx 表,

字段包括:

id:mysql 自增 id,主键唯一索引

msgId:消息 id,唯一索引,id 由 id 生成器生成

body:text 类型,

status:消息状态:1.未被消费,2.已消费完成

sendTime:消息投递时间

createTime:创建时间

updateTime:最后一次被消费的时间

索引:

id 为主键唯一索引

msgId 为唯一索引,消息的唯一标识


消费记录表设计:

用于记录消费者消费的情况,每个 topic 一张表,例如 topic_consum_xxx 表,

字段包括:

id:自增 id,主键唯一索引

consumId:消费者 id

msgId:消息 id

status:消息状态,1.已被消费拉取;2.消费者已确认消费完成

createTime:创建时间,消费者消费消息的时间

索引:

id 为主键唯一索引

联合唯一索引:(consum_id,msg_id) 防止同一个消费者重复消费消息

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

炮仗

关注

还未添加个人签名 2018-04-27 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营10期-作业8_炮仗_InfoQ写作社区