写点什么

架构实战营 - 第 6 期 模块八课后作业

作者:乐邦
  • 2022 年 6 月 07 日
  • 本文字数:683 字

    阅读完需:约 2 分钟

1、消息队列表,表名:message_queue


设计思路:消息队列本身数量不会太大,所以消息队列表为一个表即可,主要存放消息队列自身的一些属性,如图所示,

queue_id:该字段不能重复,创建为主键索引,自增即可。

queue_name:消息队列名称也不能重复,全局唯一,故设置唯一索引,方便日后查询。

type:消息队列类型字段创用来查询不同类型的消息队列信息,常作为 where 条件的子句,且值可重复,故设置为普通索引。


2、消息队列内容表,表名:message_queue_content_XXX (XXX=queue_id)


设计思路:每个消息队列,都是单独存在的,跟别的消息队列不存在任何关系,且每个消息队列里面的数据,通常是巨量的,所以为每个消息队列,都单独创建一个消息内容表,表名的后缀为消息队列的 queue_id。

content_id:消息内容 id 在单个消息队列内容表中是唯一的,所以可以为其创建主键索引,自增即可。

producer_source:有时候会查询某个消息队列里面,某个生产者来源所生产的消息内容,所以可以为生产者来源创建一个普通索引。


3、消费信息表,表名:consumer_info


设计思路:用来存储某个消费者消费某些消息队列,以及消息到哪个内容位置;每个消息队列都可以被多个消费者消费。

consumer_name:创建普通索引,用来查询某个消费者所有消费的消息队列已经对应的内容

queue_id:创建普通索引,用来查询某个消息队列被多少个消费者消费。

consumer_name,queue_id,content_id:创建联合索引,用来查询某个消费者,对于某个消息队列,消费到那个消息内容了,把 content_id 加上,可以索引覆盖,不用回表。

consumer_name,create_time:创建联合索引,用来查询某个消费者,在某个时间段内消费的数据信息。

发布于: 刚刚阅读数: 5
用户头像

乐邦

关注

还未添加个人签名 2018.06.15 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营 - 第 6 期 模块八课后作业_乐邦_InfoQ写作社区