Skip to content

消息队列 ​

定义平台消息队列(MQ)的宿主选型、配置规则、业务使用边界及消息通知规范。核心原则为基础设施MQ专注底层异步流转,业务通知统一收敛消息中心,杜绝业务场景直接裸用MQ,保证平台消息架构统一、规范、可维护。

功能说明 ​

平台将底层消息队列与业务消息通知能力严格拆分,两类能力各司其职,禁止混用:

  • MQ(Redis/Kafka):属于底层基础设施能力,仅用于技术层异步解耦、系统数据流转、后台任务调度、日志投递、数据同步等底层技术场景,不直接承载前端/用户侧业务通知。
  • 消息中心:属于业务层消息能力,统一承接所有用户通知、业务提醒、流程推送、状态变更告知等业务场景,通过标准化通道、策略配置实现消息分发、降级、重试、静默控制。

名词解释 ​

名词说明
MQ.Type消息队列宿主类型,平台支持两种可选类型:Redis、Kafka,用于定义底层MQ通信载体

一、配置规范 ​

1.1 配置入口 ​

所有MQ连接参数、队列配置、消费参数、超时、重试等基础配置,统一托管于项目 appsettings 配置文件,同时支持后台管理菜单可视化配置覆盖。

具体字段定义、参数释义、取值规则以系统对应菜单表单字段说明为准。

1.2 配置节点说明 ​

系统预设统一 MQ 配置根节点,包含但不限于以下通用配置项:

  • MQ.Type:指定队列宿主(Redis/Kafka)
  • 连接地址、端口、账号密码
  • 队列主题/队列名前缀
  • 消费线程数、批量消费大小
  • 消息超时、重试次数、死信策略
  • 开关、调试日志、监控上报配置

二、使用场景与边界规则 ​

2.1 允许直接使用原生MQ的场景 ​

  • 系统内部数据异步同步、数据落库缓冲
  • 后台定时任务、延迟任务、异步解耦处理
  • 系统日志、操作日志、审计日志异步投递
  • 第三方回调消息接收与转发
  • 高吞吐、低业务感知的技术类消息流转

2.2 禁止直接使用原生MQ的场景(必须走消息中心) ​

  • 用户站内通知、弹窗提醒、消息红点
  • 业务流程变更、审批通知、状态变更提醒
  • 系统公告、活动通知、告警提醒
  • 所有需要控制受众、频次、权限、开关的业务消息

三、使用示例规范 ​

3.1 底层MQ使用 ​

技术层异步场景,直接基于 appsettings 中 MQ 节点配置,通过框架封装的通用MQ客户端进行生产、消费,业务代码无需硬编码连接参数与队列信息。

3.2 业务消息使用 ​

所有业务通知场景,不自行编写MQ投递逻辑,统一调用消息中心能力,通过消息中心后台菜单配置消息通道、推送策略、模板、受众规则,实现业务消息快速落地。

四、选型策略(Redis / Kafka) ​

根据业务吞吐量、可靠性要求选择对应MQ类型:

  • Redis MQ:适用于轻量、低延迟、中小吞吐、允许少量消息丢失的常规异步任务场景,接入简单、性能优异。
  • Kafka MQ:适用于高吞吐、海量数据、日志流水、严格顺序、高可靠、可回溯的大数据量消息流转场景。

五、配置示例 ​

"MQ": {
    "Type": "Redis",
    "Kafka": {
      "Servers": "${KAFKA_SERVERS}"
    },
    "Redis": {
      "Servers": "${REDIS_CONNECTION}"
    }
}

相关文档 ​

白泽 ProCode 开发者文档