写点什么

架构实战营 - 设计消息队列存储消息数据的 MySQL 表格

用户头像
Nullrable
关注
发布于: 3 小时前

每次创建一个主题的新建一个数据库msg_${topic_name}

id  bigint 主键 pkmsg_id bigint 消息ID,ID生成器生成body text,消息体created_at timestamp,创建时间client string,客户端标识cluster_id string,集群IDretry_count,重试次数

index(msg_id)index(created_at)
这里消费状态可以不要,即服务端ACK消费后即删除,这样这个数据库打下不会增加
复制代码

创建一张消费记录表,不区分 topic。使用 topic 进行数据库分区,消费记录表如下

msg_consumer
id bigint,主键 pkmsg_id bigint, 消息IDtopic varchar(50),主题consumer_at timestamp 消费时间body text,消息体client string,客户端标识
index(topic,msg_id)index(topic,consumer_at)
复制代码


用户头像

Nullrable

关注

还未添加个人签名 2018.04.11 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营-设计消息队列存储消息数据的 MySQL 表格