基于Spring Cloud微服务架构 广告系统设计与实现 / 掌握广告系统的人才,必将成为各大公司高薪争抢的对象
张勤一

高级研发工程师,曾就职于小米、春雨医生,目前就职于某大型互联网(BAT)公司,负责广告系统相关的研发工作。四年IT从业经验,熟悉C、C++、Java、Python等开发语言,喜欢研究Web框架与数据存储相关技术。拥有丰富的大型项目开发经验,授课风格简单直接,讲解细致到位。

 
  • 课程目录
  • 课程介绍
  • 1-1 课程导学

  • 1-2 ***学前必读***(助你平稳踩坑,畅学无忧,课程学习与解决问题指南)

  • 2-1 广告系统概览

  • 2-2 广告系统架构

  • 2-3 【整体看一看】准备工作与系统目录结构

  • 2-4 【总结与作业】关于广告系统与准备工作的介绍及作业

  • 3-1 Maven 基础知识

  • 3-2 Maven 相关特性

  • 3-3 【动手编码】广告系统主工程

  • 3-4 【边学边做】单节点 Eureka Server 的开发

  • 3-5 【让代码跑起来】Eureka Server 的部署

  • 3-6 【总结与作业】关于 ad-eureka 的介绍及作业

  • 3-7 微服务架构及网关组件介绍

  • 3-8 【边学边做】网关启动程序的开发

  • 3-9 【注重理解】自定义网关过滤器的开发

  • 3-10 【总结与作业】关于 ad-gateway 的介绍及作业

  • 4-1 【理解它的作用】关于通用模块功能的介绍

  • 4-2 【跟我一起编码】统一响应处理的开发

  • 4-3 统一异常处理的开发

  • 4-4 统一配置的开发

  • 4-5 【总结与作业】关于通用模块的说明及作业

  • 5-1 【回顾下Spring特性】Spring IOC和MVC基础知识

  • 5-2 【简单好用的SpringBoot】SpringBoot 常用功能特性介绍

  • 5-3 【理解业务思想】广告投放系统数据表设计

  • 5-4 【总结与作业】关于广告投放系统的介绍及作业

  • 5-5 【开始编码】创建广告投放系统子模块

  • 5-6 【Model层设计】数据表实体类定义(1)

  • 5-7 数据表实体类定义(2)

  • 5-8 数据表实体类定义(3)

  • 5-9 数据表实体类定义(4)

  • 5-10 【Dao层设计】数据表Dao接口的定义(1)

  • 5-11 数据表Dao接口的定义(2)

  • 5-12 【实战应用】用户账户服务功能实现

  • 5-13 推广计划服务功能实现(1)

  • 5-14 推广计划服务功能实现(2)

  • 5-15 推广单元服务功能实现

  • 5-16 推广单元限制服务功能实现(1)

  • 5-17 推广单元限制服务功能实现(2)

  • 5-18 创意服务功能实现

  • 5-19 创意与推广单元关联服务功能实现

  • 5-20 服务Controller的编写(1)

  • 5-21 服务Controller的编写(2)

  • 5-22 投放系统在网关中的配置

  • 5-23 数据库与数据表的创建

  • 5-24 【扩展与练习】关于 MySQL 慢查询的介绍及作业

  • 5-25 【扩展与练习】关于 MySQL 索引的介绍及作业

  • 5-26 【扩展与练习】关于 MySQL 事务隔离级别的介绍及作业

  • 6-1 【搭建微服务】创建广告检索系统子模块

  • 6-2 【跟我一起编码】基于 Ribbon 实现微服务调用

  • 6-3 【注重领会】基于 Feign 实现微服务调用

  • 6-4 【总结与作业】关于微服务调用的介绍及作业

  • 7-1 【理解设计好开发】广告数据索引设计介绍

  • 7-2 【理解设计好开发】广告数据索引维护介绍

  • 7-3 【跟我一起编码】推广计划索引对象定义与服务实现

  • 7-4 推广单元索引对象定义与服务实现

  • 7-5 关键词索引对象定义与服务实现

  • 7-6 兴趣索引对象定义与服务实现

  • 7-7 地域索引对象定义与服务实现

  • 7-8 创意索引对象定义与服务实现

  • 7-9 创意与推广单元关联索引对象定义与服务实现

  • 7-10 【实战技能提升】索引服务类缓存的实现

  • 7-11 【总结与作业】关于广告数据索引的设计与实现的介绍及作业

  • 8-1 【边学边做】导出表数据字段定义(1)

  • 8-2 导出表数据字段定义(2)

  • 8-3 表数据导出到文件功能实现(1)

  • 8-4 表数据导出到文件功能实现(2)

  • 8-5 表数据导出到文件功能实现(3)

  • 8-6 【在理解的基础上编码】索引操作Handler的定义与说明

  • 8-7 第二层级索引操作的实现

  • 8-8 第三层级索引操作的实现

  • 8-9 第四层级索引操作的实现

  • 8-10 【试试举一反三】全量索引加载的实现(1)

  • 8-11 全量索引加载的实现(2)

  • 8-12 【总结与作业】关于加载全量索引的介绍与说明

  • 9-1 【认识一下吧】MySQL Binlog 的介绍

  • 9-2 【总结与作业】关于 MySQL Binlog 的介绍

  • 9-3 【先来个栗子】使用开源工具监听 Binlog 的演示

  • 9-4 【总结与作业】mysql-binlog-connector-java介绍及作业

  • 9-5 【注重领会】构造解析 Binlog 使用到的模板文件

  • 9-6 【边学边做】实现对模板对象的解析

  • 9-7 【技能逐步提升】载入模板文件并实现列索引到列名的映射

  • 9-8 【注重理解】关于 Binlog 监听与解析的说明

  • 9-9 【跟我一起编码】Binlog 监听与解析的实现(1)

  • 9-10 【跟我一起编码】Binlog 监听与解析的实现(2)

  • 9-11 【边学边做】根据 Binlog 对象构造增量数据的准备工作

  • 9-12 【边学边做】根据 Binlog 对象构造增量数据的实现

  • 9-13 【多做总结与思考】启动对 Binlog 的监听

  • 9-14 【总结与作业】关于监听 Binlog 构造增量数据的介绍及作业

  • 10-1 【良好的代码设计】增量数据投递前的准备工作

  • 10-2 【跟我一起继续编码】第二层级增量数据的投递

  • 10-3 第三层级增量数据的投递

  • 10-4 第四层级增量数据的投递

  • 10-5 【这里有内涵】将增量数据投递到Kafka

  • 10-6 【总结与作业】关于 Binlog 增量数据投递的介绍及作业

  • 11-1 【注重理解与思考】广告检索服务功能的介绍

  • 11-2 【请求条件封装】媒体方请求对象的定义

  • 11-3 【结合业务去看响应】检索服务响应对象的定义

  • 11-4 【跟我一起编码】根据流量类型实现对推广单元的预筛选

  • 11-5 根据匹配信息实现对推广单元的再筛选

  • 11-6 通过推广单元获取关联的创意实现

  • 11-7 填充检索服务响应对象

  • 11-8 【完成功能】完善广告检索服务

  • 11-9 【总结与作业】关于广告检索服务的介绍及作业

  • 12-1 【理清概念】Kafka 基础知识的介绍

  • 12-2 【一起环境搭建】Kafka 的安装与使用

  • 12-3 【边学边做】使用原生API发送消息(1)

  • 12-4 使用原生API发送消息(2)

  • 12-5 自定义分区分配器

  • 12-6 消费者与消费者组的概念

  • 12-7 使用原生API消费消息(1)

  • 12-8 使用原生API消费消息(2)

  • 12-9 使用原生API消费消息(3)

  • 12-10 【总结与作业】关于 Kafka 的介绍及作业

  • 13-1 Hystrix Dashboard 的介绍

  • 13-2 Dashboard 模块的实现

  • 13-3 关于 Hystrix Dashboard 的介绍及作业

  • 14-1 【构建测试环境】广告系统测试前的准备工作

  • 14-2 【总结与作业】mock 数据的内容

  • 14-3 【功能上的测试】编写广告投放系统的测试用例

  • 14-4 编写广告检索系统的测试用例(上)

  • 14-5 编写广告检索系统的测试用例(下)

  • 14-6 【总结与作业】关于广告系统可用性测试的介绍及说明

  • 14-7 【接口上的测试】投放系统的 HTTP 接口测试

  • 14-8 【总结与作业】关于广告系统可用性测试的介绍及说明 - HTTP 接口测试

  • 15-1 课程总结

  • 16-1 异常和事务基础

  • 16-2 Spring 事务的属性和使用入口

  • 16-3 Spring 事务管理接口的介绍

  • 16-4 @Transactional 注解解析

  • 16-5 Spring 事务管理接口

  • 16-6 阶段练习

  • 16-7 Spring 事务机制验证前的准备工作

  • 16-8 Spring 事务对主动捕获异常和checked异常的处理

  • 16-9 Spring 事务对指定异常和RollbackOnly异常的处理

  • 16-10 Spring 事务对调用事务方法的处理

  • 16-11 Spring 中 @Transactional 注解的限制

广告系统有多重要,无需多言,掌握广告系统,你就会更重要

掌握了广告系统,就是掌握了很多互联网公司的收入核心,你自然也就是公司的核心!

融合大厂开发经验,带你实战企业级广告系统

课程源于讲师在大厂(BAT)的实践经验,带你打造一个通用的企业级广告系统,进行一次完整的后端项目实战

  • 开发环境

    MySQL SpringCloud Kafka

  • 广告系统设计思想

    对外服务统一入口 广告主投放广告模块 媒体方检索广告模块

  • 技术架构设计

    广告系统架构设计 广告数据存储设计 广告数据索引设计 广告匹配策略设计

  • 微服务体系搭建

    服务注册平台搭建 服务网关搭建 业务系统搭建

  • 广告投放编码实现

    数据存储设计 ORM服务接口实现 响应与异常统一实现

  • 广告检索编码实现

    数据索引设计 全量索引加载 增量数据的构造与投递 检索服务实现

  • 广告系统功能测试

    mock测试数据 应用服务接口测试 各模块HTTP接口测试

先睹为快,带你梳理广告系统的核心架构

SpringCloud+Kafka+MySQL实现微服务架构下的广告系统,更多精妙的“招式”等你来学哦!

学员专享增值服务

问答专区

关于课程的问题都可在问答区随时提问,

讲师会进行集中答疑

源码开放

课程案例代码完全开放给你,你可以根据

所学知识自行修改、优化

适合人群

学生党、工作1-2年的开发者、以及其他对广告系统有兴趣,并符合技 术储备要求的同学们

技术储备要求

有一定的面向对象设计开发基础、 了解SpringCloud、MySQL的基本操作