一、什么是广告系统
- 图示
- 包括以下模块
- 用到的知识点
二、广告系统实现了什么功能
- 包含的子系统
- 广告投放系统 -> 广告数据是由广告主或代理商投放
广告检索系统 -> 媒体方对广告系统发起请求,广告系统能够检索符合要求的广告数据,这就是广告检索系统的核心功能
曝光监测系统 -> 监测广告数据的曝光记录
报表系统 -> 构建广告数据报表,比如广告 A 在地域 B 中一共曝光了多少次,主要是 OLAP 的过程
扣费系统 -> 广告的每一次曝光都是需要扣费的,CPM按次数收费,CPC按点击量收费,CPT按时间收费
三、广告系统架构
- 广告数据索引由两部分组成:全量索引、增量索引。
开发所用的技术
1.项目构建和项目管理工具:Maven
maven 3.4+,spring boot 2.0.2+,spring cloud Finchley.RELEASE+,
四、广告系统骨架开发和通用模块开发
https://blog.csdn.net/weixin_38004638/article/details/90719726
4.1 Eureka服务注册与服务发现 - 构建 ad-eureka
Eureka 的介绍
核心功能
ServiceRegistry(服务注册)
ServiceDiscovery(服务发现)
基本架构
Eureka 由三个角色组成:
EurekaServer(这一章实现的功能),提供服务注册与发现
ServiceProvider,服务提供方,将自身服务注册到 EurekaServer 上,从而让EurekaServer 持有服务的元信息,让其他的服务消费方能够找到当前服务
ServiceConsumer,服务消费方,从 EurekaServer 上获取注册服务列表,从而能够消费服务
ServiceProvider/Consumer 相对于 Server,都叫做 Eureka Client
Eureka 的基本架构如下图所示
Eureka Server 的高可用
问题说明:单节点的 Eureka Server 虽然能够实现基础功能,但是存在单点故障的问题,不能实现高可用。因为 EurekaServer 中存储了整个系统中所有的微服务的元数据信息,单节点一旦挂了,所有的服务信息都会丢失,造成整个 系统的瘫痪。
解决办法:搭建 EurekaServer 集群,让各个 Server 节点之间互相注册,从而实现微服务元数据的复制/备份,即使单个节点失效,其他的 Server 节点仍可以继续提供服务
EurekaServer 集群架构如下图所示
application.yml
构造应用的 pom.xml 文件及注释信息
启动EurekaApplication
4.2 Zuul网关 - 构建ad-gateway
Zuul 的介绍
在介绍 Zuul 可以提供的功能之前,请大家先考虑一个问题:
微服务系统中往往包含很多个功能不同的子系统或微服务,那么,外部应用怎 样去访问各种各样的微服务呢?这也是 Zuul 所要解决的一个主要问题。
在微服务架构中,后端服务往往不直接开放给调用端,而是通过一个服务网关 根据请求的 url,路由到相应的服务,即实现请求转发,效果如下图所示。
Zuul 提供了服务网关的功能,可以实现负载均衡、反向代理、动态路由、请求转发等功能。Zuul 大部分功能都是通过过滤器实现的,Zuul 中定义了四种标准的过滤器类型,同时,还支持自定义过滤器(课程中实现了两个自定义过滤 器,用来记录访问延迟)。这些过滤器的类型也对应于请求的典型生命周期, 如下图所示。
pre:在请求被路由之前调用
route:在路由请求时被调用
post:在 route 和 error 过滤器之后被调用
error:处理请求时发生错误时被调用
构造应用的 pom.xml 文件及注释信息
application.yml
pre过滤器记录开始时间,post过滤器计算执行时间
启动ZuulGatewayApplication
4.3 Common通用配置模块 - ad-common
通用的代码、配置不应该散落在各个业务模块中,不利于维护与更新
一个大的系统,响应对象需要统一外层格式
各种业务设计与实现,可能会抛出各种各样的异常,异常信息的收集也应该做到统一
五、springboot分析
六、广告投放系统设计实现
https://blog.csdn.net/weixin_38004638/article/details/90719774
6.1概念
用户账户 -> 最高层级,用于定义广告主或代理商,只有有了用户才会有接下来的数据投放
推广计划 -> 一类品牌或产品广告投放的规划,自身并不定义太多关于广告自身的信息,它会将信息打包下放到推广单元层级
推广单元 -> 一个确定的广告投放策略,描述了投放广告的规则信息
推广单元维度限制(关键字、兴趣、地域) -> 广告投放会有一些限制条件,例如只投放到北京、上海地区,对一些关键字进行投放等等
广告创意 -> 展示给用户看到的数据,可以是图片、文本或者一段视频
6.2配置文件
构造广告投放系统sponsor应用的 pom.xml 文件



















