广告系统实现

article/2025/11/7 2:11:40

一、系统架构

 二、准备工作

1、开发工具:IDEA

2、数据库:MySQL

3、环境:JDK1.8、 Maven 3

4、系统目录结构

三、广告系统的功能

1、广告投放系统 -> 既然是广告系统,一定得有广告数据,数据当然是由广告主或代理商投放,那么,也就需要有个投放广告的平台,这就是广告投放系统

2、广告检索系统 -> 媒体方对广告系统发起请求,广告系统能够检索符合要求的广告数据,这就是广告检索系统的核心功能

3、曝光监测系统 -> 监测广告数据的曝光记录

4、报表系统 -> 构建广告数据报表,比如广告A在地域B中一共曝光了多少次,主要是 OLAP 的过程

5、扣费系统 -> 广告的每一次曝光都是需要扣费的,且这个系统里面负责了将广告数据置位的功能

四、Maven基础

1、Maven 通过坐标去仓库获得对应的资源

 2、maven常用的命令

 3、相关特性

 

 

     五、Eureka-服务注册(Serveice Registry)与发现(Service Discovery)

1、Eureka由Eureka Server和Eureka Client组成

 2、Eureka Server:提供服务的注册与发现

        (1)、模块目录

3、Eureka Client :将服务注册到Eureka Service和从Eureka Service中获取服务

        主要有Service Provider 和Service Consumer组成    

  六、网关-zuul

1、API-网关:业务接口通过API网关暴露,是所有客户端接口的唯一入口地址。微服务之间的通信也通过API网关

 2、zuul的生命周期

        pre:在请求被路由之前调用

        route:在路由请求时被调用

        post:在返回请求时被调用

        error:处理请求时发生错误时调用

3、zuul的功能大部分都是由过滤器实现的(示例代码)

@Slf4j
@Component
/*** 通过实现ZuulFilter实现*/
public class PreRequestFilter extends ZuulFilter {/**** @return 返回过滤器的类型   pre、post、error、route*/@Overridepublic String filterType() {return FilterConstants.PRE_TYPE;}/***  定义同一类型过滤器的执行顺序,值越小则优先级越高* @return 返回过滤器的优先级*/@Overridepublic int filterOrder() {return 0;}/*** 可以通过逻辑条件判断,选择过滤器是否执行* @return 返回过滤器是否需要执行*/@Overridepublic boolean shouldFilter() {return true;}/*** 定义过滤器具体执行的操作* @return* @throws ZuulException*/@Overridepublic Object run() throws ZuulException {RequestContext ctx=RequestContext.getCurrentContext();ctx.set("startTime",System.currentTimeMillis());return null;}
}

 六、广告系统业务部分

(一)、通用模块设计

1、设计思想

  • 通用的代码、配置不应该散落在各个业务模块中,不利于维护与更新

  • 一个大的系统,响应对象需要统一外层格式

  • 各种业务设计与实现,可能会抛出各种各样的异常,异常信息的收集也应该做到统一

2、通用模块主要包含统一配置开发、统一响应处理、统一异常处理

        统一配置开发:主要是通用代码定义和配置定义

        统一响应处理:方便前端解析

        统一异常处理:对异常分类,便于排查问题,Debug;降低代码中对异常处理的耦合


http://chatgpt.dhexx.cn/article/NpAvYYKe.shtml

相关文章

逻辑位移和算术位移

在C语言标准中&#xff0c;有两种位移分别为算术位移和逻辑位移。 逻辑位移&#xff1a;在位移运算符&#xff08;>>和<<&#xff09;之前的数是无符号数&#xff0c;编译产生的汇编指令是逻辑位移。 算术位移&#xff1a;在位移运算符之前的数是有符号数&#xff…

带符号位移运算,无符号位移运算,位运算

带符号位移运算&#xff1a; &#xff08;符号位也参与移动&#xff09; &#xff08;除了负数右移高位补1&#xff0c;其他情况空位均补0&#xff09; &#xff08;左移右移后可能结果正负都变了&#xff09; >>右移 &#xff08;向右移一位约等于除以2&#xff0c;注意…

显卡和异构计算

显卡和异构计算 本文采用知识共享署名 4.0 国际许可协议进行许可&#xff0c;转载时请注明原文链接&#xff0c;图片在使用时请保留全部内容&#xff0c;可适当缩放并在引用处附上图片所在的文章链接。 显卡GPU 显卡分类 集成显卡独立显卡核芯显卡 显卡性能 架构流处理器核心频…

带符号移位运算详解

十进制正整数有符号左移 示例&#xff1a;10 << 2 40 Java代码&#xff1a; public class ShiftTest {public static void main(String []args){int leftShiftBegin 10;System.out.println("十进制数&#xff1a;" leftShiftBegin " , " &quo…

机器对移位运算的看法

1.先说一个运算口诀叫“左乘右除”&#xff0c;如k<<1>k*2; k>>1>k/2; 2.左移 先看左移运算&#xff0c;因为相对于右移较为简单&#xff1b; x向左移动K位&#xff0c;会丢弃最高的K位&#xff0c;并在右端补K个0&#xff0c;移位运算是从左到右课结合的&a…

定点运算——位移运算

位移运算 前提&#xff1a;下述的移位运算推理过程是建立在合理的移位运算基础上的&#xff0c;即移位运算的结果和实际运算结果一致 位移运算的数学意义 位移运算&#xff0c;相当于小数点的移动&#xff0c;对数值进行扩大或者缩小进制数倍 左移运算&#xff0c;小数点右移…

【逻辑位移和算数位移】

<< 运算符 && >> 运算符 正数位移 当 x>>n 中 x 为正数时&#xff0c;会将x的所有位右移x位&#xff0c;同时左边高位补0 显而易见&#xff0c;运算结束后&#xff0c;值为1 。 可知右移n位&#xff0c;结果就是 x / 2^n&#xff1a;7 / 2 ^2 1;…

算术位移和逻辑位移(一篇懂)

位运算程序员的基本功&#xff0c;但是不得不说这一块儿确实挺让人头疼的。不过还好&#xff0c;你遇到了我&#xff0c;哈哈... 文章目录 必备知识算术移位逻辑移位用例子说话总结 必备知识 计算机是以二进制方式来进行运算的,也就是0和1 。所有数据必须转化成0、1代码计算机才…

矩阵乘测试显卡算力

由于pytorch和tensorflow不支持int8 int16的gemm&#xff0c;因此只能测试fp32 fp16 bf16等精度的tflops&#xff0c;如果要测试int8 int16精度下的数值&#xff0c;需要编写cublas脚本&#xff0c;目前不会CUDA编程&#xff0c;可参考大佬的脚本&#xff1a; cuBLAS矩阵乘法性…

逻辑运算和位移指令

逻辑运算指令 AND OR NOT XOR TEST 逻辑位移指令 SHL SHR 算术位移指令 SAL SAR 小循环位移指令 ROL ROR 大循环位移指令 RCL RCR AND 逻辑与指令 汇编格式&#xff1a;AND 目的操作数&#xff0c;源操作数 执行操作&#xff1a;&#xff08;目的操作数&#xff09;&…

Java 移位操作符

如有理解错误的地方&#xff0c;希望大家能够指正。 移位操作符在以前的开发中并没有使用过&#xff0c;估计在日常的开发中也很少会用到&#xff0c;所以记录下来&#xff0c;以后需要的时候方便查阅。 基本概念 Java里面的移位操作符总共有以下三种&#xff1a; 左移操作符 …

java移位操作示例

java移位操作示例 public class Shift4JTest {/***移位操作符有>>&#xff08;右移&#xff09;、<<&#xff08;左移&#xff09;、>>>&#xff08;右移&#xff09;* >>是带符号右移&#xff0c;负数高位补1&#xff0c;正数高位补0* <<左…

Java 移位运算详解

个人网站&#xff1a;生命不息 折腾不止 1、左移运算符&#xff1a;<< 先随便定义一个int类型的数int&#xff0c;十进制的value 733183670&#xff0c;转换成二进制在计算机中的表示如下&#xff1a; value << 1&#xff0c;左移1位 左移1位后换算成十进制的…

java移位运算_Java移位运算符 “

详解 首先举一个样例来说明不是循环移位&#xff1a; 假设上面的程序改为 i 3L << 63 程序的结果仍然为 1000000000000000000000000000000000000000000000000000000000000000 那么就说明Java中的移位运算不是循环的。 那对上面的问题又怎么解释呢&#xff1f; 在JLS(Jav…

java中的移位操作详解

移位运算&#xff0c;这是一个陌生又熟悉的操作。陌生是指不易理解且不常用&#xff0c;熟悉是指“别人家的开发工程师”在代码中经常使用这种方式进行高低位的截取、哈希计算、乘除法的运算&#xff0c;今天&#xff0c;让我们一起来揭开移位运算的神秘面纱。 Java提供了两种…

html 右侧滑动条取消,滚动条可以设置取消吗?

网页中的滚动条可以取消&#xff0c;下面我们就来看一下隐藏网页中滚动条的方法&#xff1a; 1、使用以下CSS可以隐藏滚动条&#xff1a;.container::-webkit-scrollbar {display:none} 但是要兼容其他浏览器的话这个就不太好用了&#xff0c;这个适用于Chrome 2、为了兼容其他…

html网页设计滚动条怎么设置,css怎么设置滚动条?

在我们HTML页面中经常会用到滚动条来优化我们的HTML页面&#xff0c;那么我们该如何设置滚动条呢&#xff1f;下面我们来看一下使用css设置滚动条的方法。 一、我们可以使用overflow属性设置是否出现滚动条overflow:scroll /* x y 方向都会*/ 或者 overflow-x:scroll /*只是x方…

element的表格设置及滚动条的设置

element的Table 表格 1.通过使用elementUI中的表格&#xff0c;达到我们需要的效果&#xff0c;其中包括对滚动条的修改&#xff0c;以及文字颜色修改等… 2.先看效果&#xff0c;是可以滚动的 HTML <div class"content_table"><el-table :data"tab…

改变滚动条样式

在我们开发网页项目中往往会遇到滚动条&#xff0c;然而滚动条原本的样式太丑了&#xff0c;所以要改变滚动条的样式&#xff0c;让滚动条和我们开发的项目更加的美观更加的好看&#xff1b; 案例&#xff1a; <div style"width: 200px; height: 200px;overflow: aut…

网页中滚动条的设置和修改

一、通过css设置滚动条 在所有浏览器&#xff0c;滚动条可定制性最强的当属webkit内核的浏览器了。因为源代码开放的原因&#xff0c;市面上基于webkit内核的浏览器也是很难穷举完。例如有&#xff1a;Google Chrome、Opera&#xff08;opera最近宣布使用webkit内核了&#xf…