Fork me on GitHub

随笔分类 -  Spring Cloud

Eureka,Hystrix,Ribbon,Config,Feign,Gateway...
摘要:启动流程 消费者在启动之后,会通过 来生成远程调用代理类。在 方法中,会启动一系列调用函数,我们来一个个解析。 配置同样包含2种: XML Java API 1. 在此阶段,会初始化 & 的静态变量以及静态代码块。 2. 1. 通过 启动dubbo。 2. 继而初始化服务的元数据信息, 这段用来生成 阅读全文
posted @ 2020-03-02 09:59 IsaacZhang 阅读(335) 评论(1) 推荐(0) 编辑
摘要:服务发布 启动流程 服务提供方在启动部署时,dubbo会调用 来激活服务发布流程,如下所示: Java API: XML 查看 源码可知,总共有三种服务导出选项: 此方法主要是根据设置的属性进行合法性检查,主要包含是否已被导出,doExportUrls(); 此方法用来加载所有的服务注册中心对象,在 阅读全文
posted @ 2020-02-28 15:28 IsaacZhang 阅读(431) 评论(0) 推荐(0) 编辑
摘要:到目前为止,我们整个初级广告检索系统就初步开发完成了,我们来整体回顾一下我们的广告系统。 整个广告系统编码结构如下: 1. 父模块 主要是为了方便我们项目的统一管理 2. 这个模块主要有2个作用,本身只应该作为数据库脚本管理package来使用,但是我们在生成索引文件的过程中,为了方便,我就直接将导 阅读全文
posted @ 2019-08-20 23:00 IsaacZhang 阅读(730) 评论(0) 推荐(0) 编辑
摘要:系统运行 经过长时间的编码实现,我们的主体模块已经大致完成,因为之前我们都是零散的对各个微服务自行测试,接下来,我们需要将所有的服务模块进行联调测试,Let's do it. 清除测试数据&测试文件 我们在实现各个服务的过程中,添加了不少的测试文件和测试数据,为了不影响我们最终的展示效果,我们先将之 阅读全文
posted @ 2019-08-18 22:38 IsaacZhang 阅读(579) 评论(0) 推荐(0) 编辑
摘要:在之前的18次文章中,我们实现了广告系统的 ,`广告检索 服务发现Eureka 服务调用Feign 网关路由Zuul 错误熔断Hystrix Spring Cloud`组件。 简单调用关系: 但是系统往往都会报错,我们之前定义了一些容错类和方法,但是只是在控制台可以看到错误信息,我们想要统计一些数据 阅读全文
posted @ 2019-08-15 22:48 IsaacZhang 阅读(461) 评论(0) 推荐(0) 编辑
摘要:实现增量数据索引 上一节中,我们为实现增量索引的加载做了充足的准备,使用到 开源组件来实现MySQL 的binlog监听,关于binlog的相关知识,大家可以自行网络查阅。或者可以 本节我们将根据binlog 的数据对象,来实现增量数据的处理,我们构建广告的增量数据,其实说白了就是为了在后期能把广告 阅读全文
posted @ 2019-08-10 22:15 IsaacZhang 阅读(665) 评论(1) 推荐(2) 编辑
摘要:MySQL Binlog简介 什么是binlog? 一个二进制日志,用来记录对数据发生或潜在发生更改的SQL语句,并以而进行的形式保存在磁盘中。 binlog 的作用? 最主要有3个用途: 数据复制(主从同步) Mysql 的Master Slave协议,让Slave可以通过监听binlog实现数据 阅读全文
posted @ 2019-08-09 22:02 IsaacZhang 阅读(1039) 评论(0) 推荐(1) 编辑
摘要:上一节我们实现了索引基本操作的类以及索引缓存工具类,本小节我们开始实现加载全量索引数据,在加载全量索引数据之前,我们需要先将数据库中的表数据导出到一份文件中。Let's code. 1.首先定义一个常量类,用来存储导出文件存储的目录和文件名称 因为我们导出的文件需要在搜索服务中使用到,因此,我们将文 阅读全文
posted @ 2019-08-08 22:45 IsaacZhang 阅读(675) 评论(1) 推荐(0) 编辑
摘要:"上一节" 我们分析了广告索引的维护有2种, 和`增量索引维护`。因为广告检索是广告系统中最为重要的环节,大家一定要认真理解我们索引设计的思路,接下来我们来编码实现索引维护功能。 我们来定义一个接口,来接收所有index的增删改查操作,接口定义一个范型,来接收2个参数, 代表我们索引的健值, 代表返 阅读全文
posted @ 2019-08-07 23:05 IsaacZhang 阅读(478) 评论(0) 推荐(0) 编辑
摘要:索引设计介绍 在我们广告系统中,为了我们能更快的拿到我们想要的广告数据,我们需要对广告数据添加类似于数据库index一样的索引结构,分两大类: 和`倒排索引`。 正向索引 通过唯一键/主键生成与对象的映射关系。 比如,我们从数据库中查询数据的时候,根据数据主键ID查询当前记录,其实就是一个正向索引的 阅读全文
posted @ 2019-08-06 21:44 IsaacZhang 阅读(901) 评论(0) 推荐(0) 编辑
摘要:上一节我们使用了Ribbon(基于 )进行微服务的调用,Ribbon的调用比较简单,通过Ribbon组件对请求的服务进行拦截,通过 获取到服务实例的 ,然后再去调用API。本节课我们使用更简单的方式来实现,使用声明式的 服务客户端 ,我们只需要使用Feign来声明接口,利用 来进行配置就可以使用了, 阅读全文
posted @ 2019-08-04 23:07 IsaacZhang 阅读(325) 评论(0) 推荐(0) 编辑
摘要:在使用Ribbon调用广告投放系统API之前,我们需要先创建2个VO对象, ,`AdPlanGetRequestVO`. 在 启动类中,添加 客户端。 创建一个controller,来测试调用广告提供系统的API 阅读全文
posted @ 2019-07-31 21:24 IsaacZhang 阅读(214) 评论(0) 推荐(0) 编辑
摘要:搜索系统启动主类 配置文件 阅读全文
posted @ 2019-07-30 22:02 IsaacZhang 阅读(223) 评论(0) 推荐(0) 编辑
摘要:工作流程 项目依赖 阅读全文
posted @ 2019-07-30 21:55 IsaacZhang 阅读(235) 评论(0) 推荐(0) 编辑
摘要:在前面的过程中,我们创建了4个project: "服务发现" 我们使用Eureka 作为服务发现组件,学习了 ,`Eureka Client`的使用。 Eureka Server 1. 加依赖 2. 加注解 3. 改配置 使用Sprint Boot 项目三部曲,我们可以快速添加一个新组件,并正常使用 阅读全文
posted @ 2019-07-29 23:23 IsaacZhang 阅读(359) 评论(0) 推荐(0) 编辑
摘要:DAO层设计实现 这里我们使用 来实现数据库操作,当然大家也可以使用 ,都是一样的,我们依然以用户表操作为例: JPARepository 的默认实现方法,如果我们只是继承了 而没有实现具体的操作方法,我们也是可以通过使用它的默认方法来做 操作的,如下: 功能Service实现 创建service 阅读全文
posted @ 2019-07-29 19:51 IsaacZhang 阅读(336) 评论(0) 推荐(0) 编辑
摘要:广告投放系统启动主类说明 配置信息 创建实体对象 实体类和数据库表一般是一一对应,通常称之为 ,以用户表为例: "Lombok传送门" 其他的数据库对应实体类( ,`AdPlan AdCreative AdUnitDistrict AdUnitHobby AdUnitKeyword Relation 阅读全文
posted @ 2019-07-28 20:00 IsaacZhang 阅读(631) 评论(2) 推荐(0) 编辑
摘要:一个大的系统,在代码的复用肯定是必不可少的,它能解决: 1. 统一的响应处理(可以对外提供统一的响应对象包装) 2. 统一的异常处理(可以将业务异常统一收集处理) 3. 通用代码定义、配置定义(通用的配置信息放在统一的代码管理中,便于维护和更新) 创建项目 POM文件 项目结构 vo (统一响应对象 阅读全文
posted @ 2019-07-27 19:59 IsaacZhang 阅读(642) 评论(0) 推荐(0) 编辑
摘要:Zuul(Router and Filter) WIKI: "传送门" 作用 1. 认证,鉴权(Authentication/Security) 2. 预判(Insights) 3. 压力测试(Stress Testing) 4. 灰度/金丝雀测试(Canary Testing) 5. 动态路由(D 阅读全文
posted @ 2019-07-26 20:29 IsaacZhang 阅读(668) 评论(3) 推荐(0) 编辑
摘要:什么是广告系统? 主要包含: 广告主投放广告的《广告投放系统》 媒体方(广告展示媒介 )检索广告用的《广告检索系统》 广告计费系统(按次,曝光量等等) 报表系统 Etc. 使用技能栈 JDK1.8 MySQL 8+ Maven 3+ Spring cloud Greenwich.SR2 Eureka 阅读全文
posted @ 2019-07-26 07:43 IsaacZhang 阅读(1035) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示