架构训练营 - 作业八
1. ER 图

2.表结构设计及思路
2.1 queue_tbl
描述:队列表,用于记录队列信息,以及对应 topic 信息(以下省略基本信息字段的描述)

2.2 queue_topic_x
描述:队列对应 topic 表,具体命名方式: qt_具体队 Id+具体 topicId_tbl,即每个 topic 都有单独存储消息的表

注解:partition_key 作为分区 key,便于对消息进行分区消费时采用索引查询
2.3 topic_consumer_x
描述:topic 对应的消费者消费记录表,命名方式:tc_具体 topicId,即每个 topic 有单独的消费记录表

注解:consumer_id 和 partition_key 作为联合索引,便于查询每个消费者对于某个具体分区消费情况
2.4 queue_topic_auth_tbl
描述:队列 topci 权限表,记录生产者消费者是否有权限对队列操作

3. 总结
从整体来看,可以根据队列 id 进行 hash 分区,然后将对应的 queue_topic_x 和 topic_consumer_x 放入同一个分区,针对 queue_topic_auth_tbl 则所有分区都保存一份,实时更新。
版权声明: 本文为 InfoQ 作者【默光】的原创文章。
原文链接:【http://xie.infoq.cn/article/a30768a0c47debcffba002d88】。文章转载请联系作者。
评论