首页 / 数据流转 / 业务事件流

事件总线总览

总线典型用途可靠性
NATS / JetStream设备上下行、物模型事件、告警事件(跨语言主干)JetStream 持久化 + Queue Group
RocketMQ绑定 Saga、通知/短信/邮件任务重试 + 事务消息
Redis StreamIoT 本地消息总线(可选实现)Stream + Consumer Group
本地总线单体开发默认(IoT/GPS/Alarm)进程内

NATS 主题与消费方

主题生产者消费者落点
device.up.thing.{productID}.{deviceName}dgsvr/gpscodecsvrdmsvr、geosvr、Java物模型处理
GPS_RAW_V1(Stream)dmsvr/编解码层geosvrTDengine 原始轨迹
GPS_QUALITY_V1(Stream)geosvrtripsvr 等质量清洗后轨迹
DMS_DEVICE_THING_UP_V1(Stream)dgsvrdmsvr设备物模型上行
device.up.status.connected/disconnecteddgsvrJava iot 等在线状态业务
application.device.*.report.thing.propertyGo 数据面Java(iots、gps、alarm)业务规则与告警
device.down.thing/ota/config/shadow.*Java/Go 业务dmsvr/dgsvr → 设备下行指令

RocketMQ Topic 与消费方

TopicTag(事件)消费者组消费者
entrax-subscription-binding-saga-v1seat.reserve.requestedsubscription-binding-saga-subscription-v1SubscriptionBindingSagaListener(subscription)
seat.reserved / paid.activation-completedsubscription-binding-saga-iot-v1IotBindingSagaListener(iot)
notify 消息事件站内信/推送创建按模块配置NotifyMessageTaskConsumer 等
短信/邮件发送任务按模块配置SmsSendConsumer、MailSendConsumer

事件命名与消费规范

  • NATS 主题常量统一在 go-share/events/topics/nats.go,禁止硬编码字符串。
  • RocketMQ Saga 事件类型统一在 SubscriptionBindingSagaConstants(SCHEMA_VERSION=1)。
  • 多副本消费必须指定 Queue Group / consumerGroup,避免重复消费。
  • 不可丢失消息(告警、订单状态)走 JetStream 持久化 + 消费端幂等。
  • 消费失败先确认 ACK/重试/Outbox,再查业务表;不伪造业务行。