课程名称:Spring Cloud 微服务架构设计实现广告系统(新版)
课程讲师:张勤一
课程内容:
一.广告系统
广告投放系统
广告检索系统
广告计费系统
曝光监测系统
报表系统
二.使用技术
Mysql 8.0
SpringCloud
Kafka 2.1.0
三.广告系统概览
四.怎样扩展广告系统
1.更多维度
2.用户画像
3.AI
五.广告系统架构
六.微服务架构及其应用场景
微服务架构的两种方式
点对点的方式:服务之间直接调用,每一个微服务都开放Rest API,并调用其他微服务接口
API-网关方式:业务接口通过API网关暴露,是所有客户端接口的唯一入口。微服务之间的通信也通过网关。网关处理非业务逻辑,网关提供ReSTAPI
Pre filters:实现身份验证,记录调试信息,选择微服务
Rounting filters:请求微服务
Post filters:为响应添加header,将响应从微服务发送给客户端
通用模块功能介绍:
通用代码定义,配置定义
统一的响应处理:1.@RestController
2.@(REST)ControllerAdvice:对响应做出拦截,做出统一的处理响应
3.@ResponseBodyAdvice可以控制处理哪一些响应,对响应做什么样处理
统一异常处理:1.不直接展示错误,对用户友好
2.异常分类,便于排查问题,DEBUG
3.降低代码对异常处理的耦合
广告投放系统数据库表设计:
用户账户
推广计划 一对多 推广单元 多对多 创意
全量索引:检索系统在启动时一次性读取当前数据库中(注意,不能直接从数据库中直接读取)的所有数据,建立索引
增量索引:系统运行过程中,监控数据库变化,即增量,实时加载更新,构建索引
Mysql Binlog
概念:二进制日志,记录数据发生或者潜在发生更改的Sql语句,并以二进制的形式保存在磁盘中。
作用:主从复制,恢复,审计
BinLog相关变量:
变量名称 | 变量含义 | 相关语句 |
log_bin | Binlog开关 | 查看变量:show variables like ‘log_bin’ |
binlog_format | BinLog日志格式 | 查看变量:show variables like ‘binlog_format’ |
BInlog日志的三种格式:
格式类型 | 格式特性 |
Row | 仅保存记录被修改的细节,不记录sql语句的上下文,不会因为语法复制而出现问题,比如函数,触发器。会使bin_log文件变大 |
STATEMENT | 每一条会修改数据的sql都会记录在Binlog中,复制某些函数会出现问题。 |
MIXED | 以上两种level的混合使用 |
Kafka介绍:
概念:是一个分布式发布消息订阅系统,支持海量数据的数据传递,在离线和实时的消息业务处理系统中,有广泛的应用
1.消息系统
点对点消息系统
发布订阅消息系统