APP通知栏、微信、短信、邮箱消息推送:多渠道消息触达平台

250 阅读3分钟

1.介绍

多渠道消息触达平台是一个为应用开发者提供服务的平台,旨在解决发送消息的需求。

通过与消息触达平台的接口对接,开发者无需自行编写发送消息的代码,从而实现业务逻辑代码和发送消息逻辑代码的解耦。

能够让开发者能够更加专注于核心业务开发,提高开发效率,并且实现了消息发送的统一管理和多渠道的灵活选择。

 源码地址:Github源码Gitee源码

2.项目特性

统一提供多个消息服务渠道:与多个第三方消息服务API进行对接,包括邮件、短信、钉钉群机器人、APP通知栏(push通知栏)、微信公众号(模板消息)和飞书机器人。

高性能消息推送:基于阻塞队列+消息队列+动态线程池处理消息任务,可处理大量消息任务

推送灵活:支持自定义消息内容实时、定时单个推送和批量推送

消息模板发送:

数据可视化:对每个消息模板的推送情况进行可视化图形展示

7.png

扩展灵活:可对消息发送业务流程进行业务扩展,定制专属推送流程

消息可靠推送:基于消息确认机制+延迟队列+线程池监控,对进入发送阶段的消息任务全链路追踪

定时模板链路追踪

人群文件定时推送:可上传人群文件对用户定时推送

3.技术选型

动态可监控线程池:引入该技术来处理各渠道消息发送任务,提高消息发送任务的并发量和处理速度。

Nacos:用于管理项目中的微服务实例和服务配置,通过动态管理线程池参数,提升系统的灵活性。

Redis:使用Redis实现消息的链路追踪,对消息的各个阶段进行实时监控、日志记录和消息发送记录,掌控消息的生命周期。

Xxl-job:用于定时启动定时消息任务,实现消息的定时发送功能。

RabbitMQ:作为消息中间件,将实时消息发送任务或定时消息任务交给RabbitMQ监听消费,实现消息发送的异步解耦,降低系统的耦合度。

Docker:用于统一部署各组件,简化系统的部署难度。

RabbitMQ延迟队列:通过使用延迟队列,处理超时消息任务,提高消息的可靠性。

Mysql:作为存储消息发送模板信息和第三方账号配置信息的数据库。

ECharts可视化:通过使用ECharts,对消息模板下发用户数、今日消息送达率、每天各时间段发送情况以及消息模板用户等数据进行可视化展示,方便进行消息模板的数据分析。

Sentinel限流:使用Sentinel来对消息发送接口进行限流,保障系统的稳定性。

Redisson分布式锁:对消息确认机制引入分布式锁减小锁粒度,提高并发量

4.目前支持的渠道消息类型

邮箱

   - 支持文本、HTML类型

   - 支持网络附件和本地附件推送

短信

   - 阿里云:支持手机号回执拉取

   - 腾讯云:支持手机号回执拉取、账号回执拉取

APP通知栏

微信公众号

   - 模板消息

钉钉群机器人

   - 文本

   - Markdown

   - 链接消息

   - 卡片消息

   - FeedCard

飞书机器人

   - 文本

部分演示图

目前项目处于完善阶段,如有不足请多多包涵~