当前位置:网站首页>架构实战营模块 8 作业
架构实战营模块 8 作业
2022-07-31 19:26:00 【InfoQ】
设计消息队列存储消息数据的 MySQL 表格
【作业要求】
1. 包括表名、字段、索引;
2. 用文字描述设计思路和理由,例如:为什么设计某个索引?
3. 一页 PPT 即可。
【提示】
1. 需要考虑每个消息队列一张表,还是所有消息放一张表,里面加一个“队列名称”的字段。
一、设计方案
考虑到 MySQL 单表性能,所以采用每个消息队列单独保存一张数据表。
- 优点:
- 队列之间解耦,并且数据隔离。
- 实现简单、性能高。
- 缺点:
- 需要的资源多于单表。
- 维护成本略高于单表方案。
1.1 表设计
1.1.1 表名规则
表名:
{topic}_message
说明:每个队列一张表,数据表在创建 topic 时生成。
1.1.2 字段设计

1.2 处理逻辑
1.2.1 生产消息
- 消息队列服务获取TOPIC名称和消息体后进行处理。
- 根据表名规则由TOPIC名称找到对应的消息表进行数据写入,如未找到表则创建新表。
1.2.2 消费消息
消费者节点轮询拉取消费状态为
未消费
的数据进行消费。
消费成功后更新
消费时间
并且修改消费状态为
已消费
。
边栏推荐
- What's wrong with the sql syntax in my sql
- go记录之——slice
- -xms -xmx(information value)
- The server encountered an internal error that prevented it from fulfilling this request的一种解决办法[通俗易懂]
- INeuOS industrial Internet operating system, the equipment operational business and "low code" form development tools
- Bika LIMS 开源LIMS集—— SENAITE的使用(检测流程)
- Routing interception of WeChat applet
- iNeuOS工业互联网操作系统,设备运维业务和“低代码”表单开发工具
- 【PIMF】OpenHarmony 啃论文俱乐部—盘点开源鸿蒙三方库【3】
- 获取抖音视频详情 API
猜你喜欢
随机推荐
Routing interception of WeChat applet
INeuOS industrial Internet operating system, the equipment operational business and "low code" form development tools
Go basic part study notes
MySQL---单行函数
leetcode 665. Non-decreasing Array 非递减数列(中等)
【PIMF】OpenHarmony 啃论文俱乐部—盘点开源鸿蒙三方库【3】
21.支持向量机—核函数的介绍
TestCafe总结
常用的安全渗透测试工具(渗透测试工具)
中文编码的设置与action方法的返回值
使用 Flutter 和 Firebase 制作!计数器应用程序
ECCV 2022 华科&ETH提出首个用于伪装实例分割的一阶段Transformer的框架OSFormer!代码已开源!...
抖音根据关键词取视频列表 API
Performance optimization: remember a tree search interface optimization idea
Istio介绍
Thymeleaf是什么?该如何使用。
Shell script quick start to actual combat -02
MySQL---基本的select语句
iNeuOS工业互联网操作系统,设备运维业务和“低代码”表单开发工具
TestCafe之如何进行调试









