架构实战营 - 设计消息队列存储消息数据的 MySQL 表格
每次创建一个主题的新建一个数据库msg_${topic_name}
复制代码
创建一张消费记录表,不区分 topic。使用 topic 进行数据库分区,消费记录表如下
复制代码
每次创建一个主题的新建一个数据库msg_${topic_name}
id bigint 主键 pk
msg_id bigint 消息ID,ID生成器生成
body text,消息体
created_at timestamp,创建时间
client string,客户端标识
cluster_id string,集群ID
retry_count,重试次数
index(msg_id)
index(created_at)
这里消费状态可以不要,即服务端ACK消费后即删除,这样这个数据库打下不会增加
创建一张消费记录表,不区分 topic。使用 topic 进行数据库分区,消费记录表如下
msg_consumer
id bigint,主键 pk
msg_id bigint, 消息ID
topic varchar(50),主题
consumer_at timestamp 消费时间
body text,消息体
client string,客户端标识
index(topic,msg_id)
index(topic,consumer_at)
还未添加个人签名 2018.04.11 加入
还未添加个人简介
促进软件开发及相关领域知识与创新的传播
评论