项目2——广告系统
使用 Spring Cloud 等技术的项目
paynmind
小白一个,只能一步一个脚印。
展开
-
第十七章 广告系统的可用性测试
此博客用于个人学习,来源于网上,对知识点进行一个整理。1. 前期准备:在进行测试前,需要对 SpringCloud 的核心组件之一——Hystrix Dashboard 有个了解。1.1 Hystrix Dashboard 是什么:Hystrix 提供了对于微服务调用状态的监控信息,但是需要结合 spring-boot-actuator 模块一起使用。Hystrix Dashboard 主要用来实时监控 Hystrix 的各项指标信息。通过 Hystrix Dashboard 反馈的实时信息,可以原创 2020-11-23 21:58:18 · 543 阅读 · 2 评论 -
第十六章 广告检索系统(二)
此博客用于个人学习,来源于网上,对知识点进行一个整理。1. 根据匹配信息实现对推广单元的再筛选:1.1 完善 UnitDistrictIndex:之前定义的 UnitDistrictIndex 类中并没有 match 的实现方法,需要我们去添加。public boolean match(Long adUnitId, List<DistrictFeature.ProvinceAndCity> districts){ if (unitDistrictMap.containsKey(a原创 2020-11-18 21:48:35 · 401 阅读 · 0 评论 -
第十五章 广告检索系统(一)
此博客用于个人学习,来源于网上,对知识点进行一个整理。1. 广告检索服务功能的介绍:前面针对我们的广告检索服务,我们进行了全量索引和增量索引的设计与实现,接下来就是对于广告检索系统的功能进行一个介绍。广告检索服务是我们广告系统中最重要的功能,...原创 2020-11-18 15:36:09 · 1629 阅读 · 0 评论 -
第十四章 广告检索系统——Binlog 增量数据的投递
此博客用于个人学习,来源于网上,对知识点进行一个整理。1. 增量数据投递前的准备工作:MySQL 增量数据的投递核心目的是构建检索服务中的增量索引,也就是说 IncrementListener 中使用到的 Isender 的方法去投递增量数据。首先我们观察到 AdPlanTable 中有两个特殊的索引——startDate 和 endDate。Long 和 Integer 这种类型的数据对于 MySQL 的表达不会有问题。但对于 Date 这种类型,Binlog 序列化成字符串,所以说我们需要去搞清楚原创 2020-11-17 01:59:36 · 261 阅读 · 0 评论 -
第十二章 广告检索系统——监听 Binlog 构造增量索引(一)
此博客用于个人学习,来源于网上,对知识点进行一个整理。原创 2020-11-15 17:49:10 · 396 阅读 · 0 评论 -
第十三章 广告检索系统——监听 Binlog 构造增量索引(二)
此博客用于个人学习,来源于网上,对知识点进行一个整理。1. 根据 Binlog 对象构造增量数据:接下来利用 Binlog 对象去构造增量数据,然后将增量数据投递出去,构建增量索引。在构建增量数据之前,先去做一些准备工作。因为我们将 Binlog 解析出来的对象看起来还是比较复杂,里面一些元素对于投递工作去构建增量索引是不需要的。所以我们需要对这个对象进行简化。1.1 准备工作:@Data@NoArgsConstructor@AllArgsConstructorpublic class MyS原创 2020-11-15 17:48:32 · 272 阅读 · 0 评论 -
第十一章 广告检索系统——加载全量索引(二)
此博客用于个人学习,来源于网上,对知识点进行一个整理。1. 索引操作:我们之前实现了将数据库中的索引信息导入到文件中, 目的是在检索的过程中实现数据的加载,构造全量索引。 但是由于写入文件的数据格式和索引的数据格式不一样,于是我们要定义好索引的操作。但由于我们之前定义了索引的增删改查方法,于是我们只需要直接调用就可以实现从文件中获取信息构造全量索引。1.1 索引操作 handler 的定义与说明:定义一个枚举,对应索引的操作类型。public enum OpType { ADD,原创 2020-11-14 23:58:25 · 375 阅读 · 0 评论 -
第十章 广告检索系统——加载全量索引(一)
此博客用于个人学习,来源于网上,对知识点进行一个整理。1. 导出表数据定义:接下来来实现加载全量索引的服务,加载全量索引就需要我们将数据库内广告主投放的数据导出到文件里面。一般情况下,这种功能是定义在索引相关操作的服务中,但是这份索引数据是针对于所有服务的,于是我们将其定义在 ad-common 中,其他服务都可以调用。1.1 定义文件的存储位置:首先,需要确定的就是文件存储到哪个地方,于是先定义一个类,在其中确定好文件的存储路径和各个索引对应的存储文件名称。public class DConst原创 2020-11-14 17:38:18 · 380 阅读 · 0 评论 -
第九章 广告检索系统——广告数据索引的设计与实现(2)
此博客用于个人学习,来源于网上,对知识点进行一个整理。1. 创意索引对象定义与服务实现:1.1 建立索引对象:其中需要注意的是 update 方法,由于不一定是每个值都需要更新,所以需要添加这个方法来实现更新所需的数据。@Data@NoArgsConstructor@AllArgsConstructorpublic class CreativeObject { private Long adId; private String name; private Intege原创 2020-11-08 12:30:04 · 512 阅读 · 0 评论 -
第八章 广告检索系统——广告数据索引的设计与实现(1)
此博客用于个人学习,来源于网上,对知识点进行一个整理。1. 广告数据索引:设计索引的目的就是为了加快检索的速度,将原始数据抽象,规划出合理的字段,在内存中构建广告数据索引。记住,并不是所有的数据都需要放在索引里。1.1 广告数据索引设计:1)正向索引:定义:通过唯一键/主键生成与对象的映射关系。核心思想是通过一个键找到一个对象,且这种关系是确定的,即唯一键对应到唯一的对象。主要应用在推广计划,推广单元和创意中。例子:2)倒排索引:定义:也被称为反向索引,是一种索引方法,它的设计是为了存储在原创 2020-11-08 01:02:51 · 1370 阅读 · 0 评论 -
第七章 广告检索系统——实现微服务调用
此博客用于个人学习,来源于网上,对知识点进行一个整理。1. 创建广告检索系统微服务:在 imooc-ad-service 下,创建 module:ad-search。1.1 pom.xml:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-insta原创 2020-11-06 23:10:22 · 298 阅读 · 0 评论 -
第六章 广告投放系统——创意功能实现与完成 Controller 层的编写
此博客用于个人学习,来源于网上,对知识点进行一个整理。1. 创意服务功能实现:1.1 定义响应格式:由于要进行数据的交互,所以需要定义一个 Request 和 Response 的响应格式,本次暂不考虑验证的事情。在 Request 中,需要定义一个方法用于将 request 对象转化为实体类对象。@Data@NoArgsConstructor@AllArgsConstructorpublic class CreativeRequest { private String name;原创 2020-11-06 00:20:49 · 424 阅读 · 0 评论 -
第五章 广告投放系统——定义 Dao 接口和部分功能实现
此博客用于个人学习,来源于网上,对知识点进行一个整理。1. 定义 Dao 接口:上一篇实现了实体类,接下来进行 Dao 接口的编写。1.1 用户 Dao 接口:AdUserRepository:public interface AdUserRepository extends JpaRepository<AdUser,Long> { /** * 根据用户名查找用户记录 * @param username * @return */原创 2020-11-01 00:59:00 · 555 阅读 · 0 评论 -
第四章 广告投放系统——数据库设计与实体类
此博客用于个人学习,来源于网上,对知识点进行一个整理。1. SpringBoot 与 MVC:IOC 作为 SpringBoot 的核心之一,先简单看一下它的原理。更多内容可以参考这篇博客:Spring 框架学习第三节:核心理念之一 —— IoC(控制反转)以及了解 Spring MVC 的模块解析:更多内容可以参考这篇博客:Spring MVC 框架学习第一节:MVC 的基本概念和入门2. 数据表设计:2.1 分析系统层级关系:先介绍一下广告投放系统的一些基本概念和一些基本功能点,也就原创 2020-10-31 18:38:48 · 2932 阅读 · 0 评论 -
第三章 微服务通用模块开发
此博客用于个人学习,来源于网上,对知识点进行一个整理。原创 2020-10-30 16:05:48 · 871 阅读 · 0 评论 -
第二章 广告系统骨架开发
此博客用于个人学习,来源于网上,对知识点进行一个整理。1. 广告系统主工程:创建 module:imooc-ad-spring-cloud,采用 maven 工程的方式创建。pom.xml:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-insta原创 2020-10-30 11:21:46 · 439 阅读 · 0 评论 -
第一章 广告系统架构
此博客用于个人学习,来源于网上,对知识点进行一个整理。1. 使用到的技术:JDK 1.8MySQL 8.0SpringCloud Finchley:EurekaZuulFeign…Kafka 2.1.02. 广告系统概览与准备工作:2.1 广告系统概览:1)实现了什么功能:广告主的广告投放推广计划推广单元…媒体方的广告曝光CPMCPTCPC2)包含哪些子系统:一个完整的广告系统包含哪些子系统:广告投放系统广告检索系统原创 2020-10-25 23:42:36 · 1742 阅读 · 1 评论