架构训练营 week8 作业
因为消息队列有很多个,而消息的多少可能相差悬殊。那么如果把所有消息放到同一个表里就不合适。因为可能由于一部分队列影响到其他的队列的消息。因此基本思路是每个队列建立一个表,分开存储消息。
消息消费基本采用按照 id 序列消费的原理,id 是自增的,所以 id 越大的就越晚消费。
之所以要加一个 create_time 主要是考虑到这个消息表不可能无限保存下去,一段时间之后肯定要进行数据的清理,那么这时候就可以根据 create_time 来进行数据的清理。并且如果有意愿,可以根据这个字段来进行 mysql 的分片处理。可以快速按照分片进行数据的删除。
消息内容很可能是一个 json 的字符串,长度的话,可能很长,因此选择 mediumtext,最大长度 16777215,相比起 text 的 65535 个字符来说,应该是够用了。
综上所述,设计的表结构如下: 表名是消息队列的名称,便于查问题的时候一一对应。在建立消息队列的时候,由消息队列的管理平台通过程序来建立这个表。
复制代码
版权声明: 本文为 InfoQ 作者【红莲疾风】的原创文章。
原文链接:【http://xie.infoq.cn/article/cf666b60a5159becc26e6c0e5】。未经作者许可,禁止转载。
评论