消息中心建设方案

3,828 阅读4分钟

前言

以前在设计消息中心的时候自行总结的一些内容,分享出来,希望能够帮助到正在做类似设计的人,当时的业务场景是基于多个学校与政府的公告消息推送需求,对于是否阻塞以及发送及时性的监控比较重视,还有发送渠道的选择也是多种多样,基于此做了一下的方案规划。

概述

  • 消息中心提供统一的消息配置,将消息按照指定规则推送到指定终端,并对这一过程进行链路和业务监控以及输出运维与运营报表的综合能力平台。
  • 消息中心由四大模块组成,消息配置、消息推送、消息监控、消息报表。

模块分层

  • 消息中心功能模块如图所示,接入方包含内部应用事件触发与系统管理后台主动触发对接,外部第三应用对接作为扩展。
  • 分层
    • 接入层-负责接口协议转换,接口的权限与安全验证以及接口调用的流量进行可控操作。
    • 校验层-主要是针对消息的风控做铺垫,针对不同类型与类别的消息会有相应的合法与合规性规则校验以及黑白名单【用户级别、组织级别、应用级别】的设置过滤等。
    • 推送层-主要是对接渠道根据配置规则与发送模式采取相应的操作让消息到达终端。
    • 存储层-主要是针对消息记录、消息本体以及不同维度的指标分析数据结果做持久化操作。

  • 配置模块
    • 在不同的分层中使用到配置模块内不同的配置能力,在此统一管理与维护。
  • 监控模块
    • 涉及消息链路的监控,包括MQ自身资源的监控以及业务维度的监控。

消息配置模块

  • 消息配置模块主要对所涉及的配置相关数据进行统一维护管理,包含消息定义配置、消息模版配置、消息优先级配置、消息发送模式配置(规则配置)等。

消息定义的配置功能

  • 定义的配置主要包含主要字段信息:消息类型、消息编码、消息描述、是否免打扰、消息优先级等。
    • 消息优先级的设置主要针对在推送时的优先程度,优先级越高就优先使用通道进行推送。

消息模板的配置功能

  • 模板的配置
    • 模板的配置主要包含主要字段信息:模板编码、模板名称、消息类型、模板消息标题、模板消息内容等

发送规则配置

  • 推送频次配置
  • 失败重发规则配置
  • 是否立即发送
  • 是否允许手动触发
  • 消息模板选择
  • 发送渠道选择

消息推送模块

  • 消息推送模块主要负责消息端到端的具体执行,集成推送渠道向外提供统一推送接口并对各推送渠道进行统一维护与管理。
  • 推送模块的核心功能是消息推送分发功能、消息数据记录功能主要为消息报表的输出提供元数据源[回执数据、失效数据、时长数据等]。

消息监控模块

  • 消息监控模块除了消息队列相关资源监控之外还需要针对消息从接入到下发终端、消息回执业务链路的全监控,核心点也是在于业务属性的监控,能够支持告警阀值预警和告警通知等功能。

消息报表模块

  • 消息报表模块主要功能是对各个维度指标进行统一查询、维护、管理功能。
  • 消息报表维度
    • 接口调用量指标-应用维度、时间维度
    • 消息发送人数指标-应用维度、时间维度
    • 消息发送次数以及人均次数-应用维度、时间维度
    • 消息发送分布统计指标-应用维度、时间维度
    • 消息已读、未读统计指标-应用维度、消息维度、时间维度
    • 消息发送进度统计指标-消息维度
    • 消息发送失败统计指标-消息维度
    • 消息发送时长统计指标-消息维度、时间维度【用于预测剩余时间】
    • 其他业务指标-应用维度、业务维度、时间维度
    • 通道状态指标-时间维度、MQ维度
    • 优先通道与优先消息监控指标-消息维度、MQ维度、时间维度