设计消息队列存储消息数据的 MySQL 表格
【作业内容】设计消息队列存储消息数据的 MySQL 表格
【作业要求】
1.包括表名、字段、索引;
2.用文字描述设计思路和理由,例如:为什么设计某个索引?
3.一页 PPT 即可。
【设计】
一、消息记录表
table name: mq_record_xx
id:自增 id
msgId:消息 id,唯一键
producer_id:生产者 id
content:消息内容
create_time:消息创建时间
主键:自增 id
唯一键:msgId
索引:index(msgId, content)
常用 sql:
select content from mq_record_xx where msgId = ?
二、消息队列表(每个消息队列一个表)
table name:mq_topic_xx
id:自增 id
msgId:消息 id,与 mq_record_xx 关联
producer_id:生产者 id,冗余存储
consumer_id:消费者 id
create_time:创建时间
status:状态,0 是未消费,1 是消费
consume_time:消费时间
主键:自增 id
索引:index(consumer_id,status)
常用 sql:消费者获取下一条未被读取的消息
select * from mq_topic_xxx where consumer_id = A and status = 0 order by id asc limit 1
版权声明: 本文为 InfoQ 作者【Vincent】的原创文章。
原文链接:【http://xie.infoq.cn/article/7e8aa88a0a5eb2ca7436c3b3a】。文章转载请联系作者。
评论