模块八作业
设计消息队列存储消息数据的 MySQL 表格
表名:每个队列一张独立的表,表名即为队列名
更利于具体表定制一些额外的列,以及增加索引或外键
可扩展,单表数据量较为可控
隔离,可以更灵活地为不同表设置不同配置
字段:
基础字段:
MessageId(CHAR) - 主键
Payload(TEXT-JSON format) - 消息内容
CreateTimestamp - 消息创建时间
IsActive(BOOLEAN) - 待消费
DeliveredTimestamp - 被确认消费时间
这里不考虑额外的设置如延迟发送,以 CreateTimestamp 为主要顺序,否则可以加 SendTimestamp/SendOptions
索引
MessageId 为主键,可使用 UUID
IsActive + CreateTimestamp 建索引找新消息
版权声明: 本文为 InfoQ 作者【Geek_1cdcf6】的原创文章。
原文链接:【http://xie.infoq.cn/article/c4327a2613c5f106df7ce8852】。未经作者许可,禁止转载。
评论