目录
随着公司发展,消息量和推送渠道越来越多,需要有一个对各类消息进行统一发送处理的平台。有利于对功能的收拢,以及提高业务需求开发的效率。
整体架构
消息流转流程介绍
发送方将消息内容和消息对象发送到媒介方,媒介方通过消息策略触达消息,最终产生回执到发送方。
消息中台业务能力
消息清洗:清洗特殊词、敏感词以及潜在的威胁词句
消息过滤:过来不符合规则的消息 例如:内容为空或格式不正确
消息组装:根据消息模板组装消息体
消息去重:与历史同类型消息对撞,去掉重复发送的消息
消息分发:根据消息接收方及发送方式,将消息正确送到正确渠道
消息管理:提供消息撤回、消息重发、消息合并以及消息模板维护功能
消息统计:统计各维度消息,并衍生出更多有价值数据,比如通道覆盖率、折损分析 、发送趋势、点击率等等
智能处理:根据各消息类型及行为,生成智能处理策略(组装、发送、运维),简化处理流程
消息发送方式
没有消息模板时,存储消息内容及对象后,依照发送策略直接发送。
有消息模板时,根据消息模板生成发送对象。
消息模板创建方式有两种:
1、在管理后台配置
2、在第一次发送该消息时根据消息渠道、消息内容以及消息对象自动生成消息模板,下次发送同类型消息直接使用已创建的消息模板发送
消息发送策略
即时发送、定时发送、定速发送(例如:每秒推送条数)、并发发送(同时发送给多渠道)、补发消息(未送达补发/未点击补发)
1.0版本设计
目标:可以支持大部分消息发送场景,支持大部分数据查询场景
消息流程
发送/存储消息
更新消息已读/未读
拉取消息
消息存储策略
存储工具:mongo
大前提:按业务类型分表存储,各业务类型根据业务场景建立查询索引
存储结构:
字段名 | 类型 | 可以为空 | 备注 |
---|---|---|---|
msgId | Long | N | 消息编号(雪花算法或递增生成) |
userId | Long | N | 用户编号 |
groupId | Long | N | 分组编号 |
bizCode | int | N | 业务类型 |
templateId | Long | Y | 模板编号 |
status | int | N |