业务架构模块 8 作业:设计消息队列存储消息数据的 MySQL 表格
作业:设计消息队列存储消息数据的 MySQL 表格
【作业要求】
1. 包括表名、字段、索引;
2. 用文字描述设计思路和理由,例如:为什么设计某个索引?
3. 一页 PPT 即可。
【提示】
1. 需要考虑每个消息队列一张表,还是所有消息放一张表,里面加一个“队列名称”的字段。
表名
每个消息队列一张表,这样相比所有消息放一张表,隔离性更好。符合 SRP 单一职责原则,好维护。
表名就用消息队列名称,方便记忆,查找。
字段
message ID(CHAR) 消息 ID。用于查找消息。
timestamp(TEXT) 发送时间戳。判断发送时间。
protocol(TEXT) 消息发送协议。用于解析 payload。
fragment(INT) 判断是消息里的第几个分片。如果消息过大,可以分成几片来发。
isBigEndian(Boolean) 消息内容大小端排列方式。用于解析 payload。
payload(JSON format) 消息内容。
索引
通过 message ID 为主键,protocol+timestamp 建索引来按时间顺序收消息。
评论