摘要:
广告投放系统启动主类说明 配置信息 创建实体对象 实体类和数据库表一般是一一对应,通常称之为 ,以用户表为例: "Lombok传送门" 其他的数据库对应实体类( ,`AdPlan AdCreative AdUnitDistrict AdUnitHobby AdUnitKeyword Relation 阅读全文
摘要:
一个大的系统,在代码的复用肯定是必不可少的,它能解决: 1. 统一的响应处理(可以对外提供统一的响应对象包装) 2. 统一的异常处理(可以将业务异常统一收集处理) 3. 通用代码定义、配置定义(通用的配置信息放在统一的代码管理中,便于维护和更新) 创建项目 POM文件 项目结构 vo (统一响应对象 阅读全文
摘要:
Zuul(Router and Filter) WIKI: "传送门" 作用 1. 认证,鉴权(Authentication/Security) 2. 预判(Insights) 3. 压力测试(Stress Testing) 4. 灰度/金丝雀测试(Canary Testing) 5. 动态路由(D 阅读全文
摘要:
什么是广告系统? 主要包含: 广告主投放广告的《广告投放系统》 媒体方(广告展示媒介 )检索广告用的《广告检索系统》 广告计费系统(按次,曝光量等等) 报表系统 Etc. 使用技能栈 JDK1.8 MySQL 8+ Maven 3+ Spring cloud Greenwich.SR2 Eureka 阅读全文
摘要:
父项目管理 首先,我们在创建投放系统之前,先看一下我们的工程结构: 就是我们的广告投放系统。如上结构,我们需要首先创建一个Parent Project 来编写父项目的pom,来管理我们的统一依赖信息。 服务发现 Eureka Eureka Server (提供服务的注册和发现) Eureka Cli 阅读全文
摘要:
在以往的对象模型编码时,我们需要写一大堆的get/set以及不同的构造函数等。Lombok为我们提供了一个非常好的插件形式。 在大多数的项目中,只需要使用到以下集中Annotation就足够了,如果需要查看更多的选项,请参考: "传送门" 1. 2. 3. 4. 生成final 字段的构造函数 5. 阅读全文
摘要:
Maven 基础知识 官网: "传送门" Maven 项目结构 json $ MavenProject | pom.xml | src | | main | | ` java | | ` resources | ` test | | ` java | | ` resources ` README.m 阅读全文
摘要:
在之前的练习中,只要应用重启,就需要重新配置,这样在我们实际的项目是非常不实用的,那么有没有办法把我们配置的规则保存下来呢?答案是YES,那么接下来,给大家来介绍如何将Sentinel规则持久化。 Document: "传送门" File Datasource(文件存储) Pull 模式 Push 阅读全文
摘要:
Qestion Answer A: B: C: 编译错误 D: 以上答案都是错的 Explain 程序执行的时候,App Classloader 会首先加载 , 按照类的顺序依次执行。 CASE 1 我们都知道, 块会在类加载的时候初始化,那么下一步会执行到 我们先来看一下当前行的字节码: 分析 可 阅读全文
摘要:
Sentinel API Github : "WIKI " Sphu (指明要保护的资源名称) Tracer (指明调用来源,异常统计接口) ContextUtil(标示进入调用链入口) 流控规则(针对来源属性) 降级规则 Sentinel Annotation 源码: & 使用该注解重构上述方法 阅读全文
摘要:
客户端远程调用 Feign 什么是Feign? Feign是 Netflix 公司开源的声明式HTTP客户端 Github : "Feign 源码" 为什么需要Feign? 1. 原代码可读性不高 2. 复杂的URL难以维护( ) 3. 难以应对需求的快速变化 4. 编码体验和我们写JAVA差异较大 阅读全文
摘要:
客户端侧负载均衡 在下图中,负载均衡能力算法是由内容中心提供,内容中心相对于用户中心来说,是用户中心的客户端,所以又被称为客户端侧负载均衡 自定义实现Client Random负载均衡 1. 获取所有的服务list 2. 随机获取需要访问的服务信息 Ribbon 什么是Ribbon Ribbon是N 阅读全文