Files
a-share-analysis/docs/features/GOV-008-rocketmq-adoption/requirements.md

1.9 KiB

工程需求

技术基线

  • MQ 固定为 RocketMQ 5.x,当前本机镜像版本为 apache/rocketmq:5.3.2。
  • 业务模块只依赖 MessageBusAdapter 与版本化事件,不直接引用客户端 SDK 类型。
  • Scheduler 只发布任务,Worker 只消费执行;重复投递由幂等键和业务唯一约束处理。

配置契约

  • Scheduler 使用 ROCKETMQ_ENABLED、ROCKETMQ_NAMESRV_ADDR、ROCKETMQ_ENDPOINT、ROCKETMQ_TOPIC_PREFIX 和发送超时。RocketMQ 5.x Proxy 官方 Node Producer 不要求 Producer Group,禁止把旧 Remoting 参数混入配置。
  • Worker 使用相同的基础连接字段,并增加 ROCKETMQ_CONSUMER_GROUP 和客户端消费并发。
  • 开发和生产模板的同一进程必须保持相同键集合;生产连接地址留空且不得提交真实值。
  • ROCKETMQ_ENABLED=false 时不建立连接;启用后 Endpoint、Topic 和对应 Group 必须通过启动配置 Schema 校验。

消息语义

  • 事件必须包含 eventId、eventType、schemaVersion、occurredAt、tradeDate、traceId 和 idempotencyKey。
  • Topic 表达稳定业务域,Tag 表达事件类型,Consumer Group 表达独立消费进度。
  • 需要顺序处理时必须声明消息组键;普通消息不保证全局顺序。
  • 超过最大消费次数后进入死信,必须支持查询、告警和受控重放。
  • 最大投递次数属于 RocketMQ 服务端 Consumer Group 重试策略,由运维配置并纳入部署验收,不作为官方 Node PushConsumer 的客户端环境变量。

本机验证

  • 检查容器、镜像、端口映射和 NameServer 启动日志。
  • 使用 TCP 探针验证 127.0.0.1:9876。
  • 检查 Docker 容器和本机原生进程,避免把相同端口的其他监听者误判为目标容器。
  • 通过 mqadmin clusterList、topicList、brokerStatus 确认 Broker 注册、版本和管理链路;不擅自创建 Topic 或写入测试消息。