设计消息队列存储消息数据的 MySQL 表格
【作业要求】
1. 包括表名、字段、索引;
2. 用文字描述设计思路和理由,例如:为什么设计某个索引?
3. 一页 PPT 即可。
【提示】
1. 需要考虑每个消息队列一张表还是所有消息放一张表里面加一个“队列名称”的字段。
简单场景,不同队列可共用一张表。
业务线
表:
msg,消息记录表
字段:
id:消息逻辑主键,自增
type:类型,多个业务共用同一张消息表,用于区分不同业务线类型。业务线较多时,可按业务进行分表。
biz_id:业务 id,防止消息的重复消费。
format:消息格式,如 text、json、yaml 等
code:消息编码,如 UTF-8、GB2312 等
content:消息内容
queue:队列名称,将需保证顺序的消息放入同一队列。
ttl:有效期,消息的有效期。
state:状态,已接收、确认接收、已消费、确认消费。
create_time:创建时间
update_time:更新时间
表:
queue,队列枚举表
字段:
id:逻辑主键,自增
queue_name:队列名称。
表:
business,业务线枚举表
字段:
id:逻辑主键,自增
biz_name:业务名称。
评论