模块八作业 - 消息队列存储消息数据的 MySQL 表格
消息存储
1.消息队列存储消息数据,我们主要关注具体的消息是什么,以及消息什么时候生成的,再就是消息是否被消费。基于这样的一个思路,我们需要如下一些字段信息:消息内容、消息生成时间、消息是否被消费。
2.关于队列方面,为了应对一个并发场景下的高性能,我们的设计需要能随时支持扩缩容,能随时进行队列的增加和减少。这里我们想做到灵活可扩展,一个队列对应一个表来进行消息的一个存储,表名定义为:<queue_name>_message。
3.详细的表结构设计如下:
消息消费
下面是消息消费的一个简单设计,记录某一个消费者对应某个消息的消费情况(成功还是失败),如果失败会按照一定策略进行重试,重试记录记录到下面的消息重试表。
消息重试
消息消费失败,会进行重试,第一次重试产生记录;第一次重试失败之后,后面的重试更新重试次数,达到一定的次数之后,不再重试。
版权声明: 本文为 InfoQ 作者【🐢先生】的原创文章。
原文链接:【http://xie.infoq.cn/article/3e2abc7070be0657f79630e52】。文章转载请联系作者。
评论