写点什么

架构实战营 模块八作业

用户头像
李晶晶
关注
发布于: 4 小时前

一、作业要求

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

说明:

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

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

3、一页 PPT 即可

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

二、设计

消息队列存储数据列表:

表名:topic_xx

xx 为真正的业务名称,每一个消息队列一张表;

针对不同的消息的消息清理策略(基于 mysql 的 ttl 机制)处理方便;

消息队列的数据较大,按每个消息队列划分,便于分表;

每个表的消息顺序由 mysql 自增 id 标识,连续,便于记录 offset;


字段:

id,消息编号,递增,唯一标识,产生索引键;

message,消息内容

createTime,消息产生时间,便于清理消息


topic 元数据表

表名:raw_topic

字段:

topicId,topic 编号

topicName,topic 名称(与上面具体的 topic 消息表对应)

ttlTime,topic 消息保留时间


生产者元数据表

表名:raw_producer

字段:

producerId,生产者编号

producerName,生产者名称(用 ip 或者业务 appId 等信息来标识)

topicId,产生的 topicId

isEnable,是否产生消息

主键为:producerId+topicId


消费者元数据表

表名:raw_consumer

字段:

consumerId,消费者编号

consumerName,消费者名称(用 ip 或者业务 appId 等信息来标识)

topicId,消费者 id

offset,消费偏移量(与消息 id 对应)


用户头像

李晶晶

关注

还未添加个人签名 2018.08.21 加入

还未添加个人简介

评论

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