/mePush

Primary LanguageJavaApache License 2.0Apache-2.0

                                              消息推送平台-mePush

SpringBoot版本 MySQL版本 maven版本 ORM框架 ORM框架 分布式日志采集 分布式定时任务 动态线程池 分布式配置中心 分布式消息队列 计算引擎

##项目演示地址:http://8.130.126.21:3000/

项目结构

  • mePush-common:公共方法
  • mePush-cron:定时任务执行器
  • mePush-handler:MQ消费者,业务处理
  • mePush-service-api-impl:接入层实现类
  • mePush-service-api:接入层
  • com.tank.stream:数据清洗
  • com.tank.support:MQ提供者,业务处理
  • com.tank.web:SpringMVC
  • com.tank.xxljob-master:定时任务调度器

背景(业务范围)

只要有发送消息的需求,就可以使用本项目,具体场景如下:

1.广告商投放广告

2.验证码短信下发

3.通知类,警告类信息下发,例如某用户关注的主播开播了,系统警告线程池线程数达到阈值

image

核心功能:

1.不同渠道不同类型的消息发送 2.消息的全链路生命周期追踪

image

如何使用:

创建账号(选择渠道!!!接入姿势查看对应官方文档1.qq邮箱开启POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务即可 2.短信去对应渠道官网开通服务:https://console.cloud.tencent.com/smsv2 3.企业微信:https://developer.work.weixin.qq.com/document/path/91201):

image

创建模板(选择刚才创建的账号作为发送账号):

image

填写发送账号,标题和文案

image

如何部署

项目配置文件在mePush-web下面的application.properties,你只需要安装对应软件,更改配置文件即可启动 启动mePush-web即可

Level1:发送消息功能 你需要部署MySql5.7.x + Redis + Kafka 参考:https://blog.csdn.net/weixin_42207486/article/details/80647802

Level2:消息全链路追踪 你需要部署Flink,并且提交stream代码 参考:https://blog.csdn.net/momo898821/article/details/105579464

Level3:定时任务,动态线程池。。。 你需要部署xxl-job 以及 Apollo 参考:https://www.jianshu.com/p/09ad73aece33

设计思路(欢迎补充):

1.消息隔离

image

2.全链路追踪

两种角度:用户角度(给用户反馈为什么消息发送失败) + 模板角度(广告曝光量)

3.消息发送可靠性 限流,黑名单,渠道负载,消息重试,消息丢失等