-
队列名称:
<ServeiceId>.<消息模型>.<队列名称>
-
消息模型分为点对点(
queue
)和发布订阅模式(topic
) -
推荐由消费者创建队列(若生成者创建,无消费者时,会导致消息堆积)
-
-
生产者连接时需指定消息是否持久化
-
连接MQ需要指定
ClientId
,格式如下:<ServeiceId>.<IP>.<UUID>
-
必须实现重连机制(一般SDK都会实现)
-
统一消息包装结构体,使用
Json
格式
🔗 规范约束
为保证可以统一收发消息的代码,便于管理,故对消息做以下格式要求
-
id
-
消息唯一标识,需要业务内唯一,全局唯一更好
-
-
type
-
消息类别(业务上的)
-
-
from
-
消息来源
-
-
to
-
消息去向
-
-
data
-
消息内容(JSON)
-
推荐data对应数据库表带版本号
-
-
-
traceId
-
便于链路追踪
-
-
spanId
-
便于链路追踪
-
如用户注册通知,队列名称:user.topic.userRegister
{ "id": "aef3338b-8674-41f4-a3ae-83f3197a05c3", 消息id "type": "user.register.email", "from": "user", "version": "1.2", "data": "{...}" }
建议消息内容中添加版本号 |