Artuhs
austin
ZhongFuCheng3y • Updated Aug 15, 2024
功能
配置
- 渠道账号
- 消息模板
使用
单条
批量
监控
渠道、用户维度消息发送
send入口
BaseHandler
初始化各个渠道,下游各个渠道实现分发
图解
Question :为什么发个消息需要MQ?
Answer:发送消息实际上是调用各个服务提供的API,假设某消息的服务超时,
austin-api
如果是直接调用服务,那存在超时风险,拖垮整个接口性能。MQ在这是为了做异步和解耦,并且在一定程度上抗住业务流量。Question:能简单说下接入层做了什么事吗?
Question:
austin-stream
和austin-datahouse
的作用?Answer:
austin-handler
在发送消息的过程中会做些通用业务处理以及发送消息,这个过程会产生大量的日志数据。日志数据会被收集至MQ,由austin-stream
流式处理模块进行消费并最后将数据写入至austin-datahouse
Question:
austin-admin
和austin-web
和austin-cron
的作用?Answer:
autsin-admin
是austin
项目的前端项目,可通过它实现对管理消息以及查看消息下发的情况,而austin-web
则是提供相关的接口给到austin-admin
进行调用(austin项目是前后端分离的)业务方可操作
austin-admin
管理后台调用austin-web
创建定时发送消息,austin-cron
就承载着定时任务处理的工作技术栈
技术栈 | 实现 |
编程语言 | Java(JDK 1.8) |
项目管理工具 | Maven 3.x |
集成开发工具 | IDEA 2022 |
部署服务器 | Centos 7.6 |
系统部署工具 | Docker & Docker-compose |
项目环境 | SpringBoot 2.5.6 |
关系型数据库 | MySQL 5.7.X |
缓存数据库 | Redis:lastest |
ORM框架 | SpringData JPA 2.5.6 |
分布式定时任务框架 | XXL-JOB v2.3.0 |
分布式配置中心 | Apollo & Nacos |
消息队列 | Kafka & RabbitMQ & RocketMQ |
分布式日志采集框架 | Graylog |
分布式计算引擎 | Flink 1.16.0 |
监控采集组件 | Prometheus |
监控可视化组件 | Grafana |
数据仓库 | Hive 2.3.2 |
大数据环境 | Hadoop 2.7.4 |
大数据可视化 | Metabase:lastest |
前端技术 | Amis |
工程模块
工程模块 | 作用 |
austin-common | 项目公共包:存储着项目公共常量/枚举/Bean |
austin-support | 项目工具包:对接中间件/组件 |
austin-cron | 定时任务模块:对xxl-job封装和项目定时任务逻辑 |
austin-web | 后台管理模块:提供接口给前端调用 |
austin-service-api | 消息接入层接口定义模块:只有接口和必要的入参依赖 |
austin-service-api-impl | 消息接入层具体实现模块:真实处理请求 |
austin-handler | 消息处理逻辑层:消费MQ下发消息 |
austin-stream | 实时处理模块:利用flink实时处理下发链路数据 |
austin-data-house | 数据仓库模块:消费MQ数据写入hive |
Loading...