模块八作业
设计消息队列存储消息数据的 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】。未经作者许可,禁止转载。












 
    
评论