分布式/微服务/架构

所有文章
分布式 ID 生成方案探讨 MySQL 建表参考 RPC 协议中的数据签名验签和加解密方案探讨 关于服务间调用循环依赖的一些思考 如何部署服务 灰度发布 日志级别 数据库分库分表指南 关于对账的一些理解 缓存 MySQL 初始化数据的一些方案 一个可扩展的 MQ 消息设计

一个可扩展的 MQ 消息设计


在一个队列中发送消息,可以通过为消息增加类型,从而保证良好的扩展性。

设计思路

假设消息格式为 json,有两个字段:

  • type : 消息类型,一般为数字
  • content : 消息内容,string 类型,内部是json 格式数据。

要点:

  • type 相同的消息,content 中的 json 数据结构是相同的;
  • type 不同的消息,content 中的 json 数据结构可以不相同。

业务代码中根据 type 做相应的处理即可。

消息示例

type 1 是某充值业务的充值成功消息:

{
    "type": 1,
    "content": "{\"user_id\": 1231391391, \"biz_id\":\"123\",  \"amount\": 100}"
}

type 2 是用户登录操作的消息:

{
    "type": 2,
    "content": "{\"user_id\": 1231391391, \"login_time\":\"2020-12-12 19:00:00\"}"
}

( 本文完 )

文章目录