# advertisement
**Repository Path**: Brunch/advertisement
## Basic Information
- **Project Name**: advertisement
- **Description**: spring cloud分布式广告系统
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-05-08
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## 项目地址
[https://github.com/1067649786/advertisement](https://github.com/1067649786/advertisement)
## 广告系统应该需要实现的最基本功能
1. 广告投放系统:既然是广告系统,一定得有广告数据,数据当然是由广告主或代理商投放,那么,也就需要有个投放广告的平台,这就是广告投放系统
2. 广告检索系统:媒体方对广告系统发起请求,广告系统能够检索符合要求的广告数据,这就是广告检索系统的核心功能。
## 广告系统架构图

## 项目运用到的技术
项目只设计了广告系统的后端部分,主要架构是基于springboot2.0.4.RELEASE+spring cloud Finchley.RELEASE+springboot JPA,数据库使用MySQL8.0,项目中还运用了kafka。
## 项目模块说明

ad-eureka:服务注册与服务发现
ad-gateway:网关,所有的请求和响应都会通过
ad-service:广告实现服务
ad-common:通用代码定义、配置定义,统一异常处理,统一的响应处理
ad-dashboard:熔断监控部分
ad-search:广告检索
ad-sponsor:广告投放
## 广告系统数据库设计

1. 用户账户:最高层级,用于定义广告主或代理商,只有有了用户才会有接下来的数据投放
2. 推广计划:一类品牌或产品广告投放的规划,自身并不定义太多关于广告自身的信息,它会将信息打包下放到推广单元层级
3. 推广单元:一个确定的广告投放策略,描述了投放广告的规则信息
4. 推广单元维度限制:广告投放会有一些限制条件,例如只投放到北京、上海地区,对一些关键字进行投放等等
5. 广告创意:展示给用户看到的数据,可以是图片、文本或者一段视频