随笔分类 - Spring Boot
摘要:启动流程 消费者在启动之后,会通过 来生成远程调用代理类。在 方法中,会启动一系列调用函数,我们来一个个解析。 配置同样包含2种: XML Java API 1. 在此阶段,会初始化 & 的静态变量以及静态代码块。 2. 1. 通过 启动dubbo。 2. 继而初始化服务的元数据信息, 这段用来生成
阅读全文
摘要:服务发布 启动流程 服务提供方在启动部署时,dubbo会调用 来激活服务发布流程,如下所示: Java API: XML 查看 源码可知,总共有三种服务导出选项: 此方法主要是根据设置的属性进行合法性检查,主要包含是否已被导出,doExportUrls(); 此方法用来加载所有的服务注册中心对象,在
阅读全文
摘要:目前市面上流行的三大配置中心框架: "Spring CLoud Config" 、 "Alibaba Nacos" 以及 "携程apollo" , 我们相应架构组号召,就使用Apollo吧。 Work Flow 简单解释: 上图中有三套环境 、`UAT PROD Configservice Admi
阅读全文
摘要:[TOC] 商品分类&轮播广告 因最近又被困在了OSGI技术POC,更新进度有点慢,希望大家不要怪罪哦。 "上节" 我们实现了登录之后前端的展示,如: 接着,我们来实现左侧分类栏目的功能。 商品分类|ProductCategory 从上图我们可以看出,商品的分类其实是有层级关系的,而且这种关系一般都
阅读全文
摘要:[TOC] 用户登录 在之前的文章中我们实现了用户注册和验证功能,接下来我们继续实现它的登录,以及登录成功之后要在页面上显示的信息。 接下来,我们来编写代码。 实现service 在 接口中添加用户登录方法: 然后,在 实现类中实现: Error Tips: 这里有一个小小的 ,大家一定要注意,在使
阅读全文
摘要:[TOC] Swagger生成JavaDoc 在日常的工作中,特别是现在前后端分离模式之下,接口的提供造成了我们前后端开发人员的沟通 成本大量提升,因为沟通不到位,不及时而造成的[撕币]事件都成了日常工作。特别是很多的开发人员 不擅长沟通,造成的结果就会让自己特别的痛苦,也让合作人员 的牙根痒痒。
阅读全文
摘要:[TOC] 用户注册 作为一个现代化电商平台,什么最重要呢?of course 是用户,广大用户群体是支持我们可持续发展的基石, , 虽然在当今上帝已经不被重视了,特别是很多的平台对于老用户就是恨不得赶紧Out...但是用户量是一切的基础,那我们就开始创建我们的上帝吧! 创建数据库 数据库的部分,我
阅读全文
摘要:Mybatis Generator tool 在我们开启一个新项目的研发后,通常要编写很多的 , 大多研发兄弟们都会抱怨,为什么我要重复写 ? 我们为了避免编写一些不必要的重复代码,这节给大家介绍介绍使用一个开源工具,来帮助我们从这种简单枯燥的编码中解救出来。 隆重有请: "MyBatis通用Map
阅读全文
摘要:前言介绍和环境搭建 简述 springboot 本身是为了做服务化用的,我们为什么要反其道使用它来开发一份单体web应用呢? 在我们现实的开发工作中,还有大量的业务系统使用的是单体应用,特别是对于中小型团队来说,在项目开发之初选择服务化开发是得不偿失的,因为对于此类团队,势必所有的工作都是需要我们开
阅读全文
摘要:系统运行 经过长时间的编码实现,我们的主体模块已经大致完成,因为之前我们都是零散的对各个微服务自行测试,接下来,我们需要将所有的服务模块进行联调测试,Let's do it. 清除测试数据&测试文件 我们在实现各个服务的过程中,添加了不少的测试文件和测试数据,为了不影响我们最终的展示效果,我们先将之
阅读全文
摘要:在之前的18次文章中,我们实现了广告系统的 ,`广告检索 服务发现Eureka 服务调用Feign 网关路由Zuul 错误熔断Hystrix Spring Cloud`组件。 简单调用关系: 但是系统往往都会报错,我们之前定义了一些容错类和方法,但是只是在控制台可以看到错误信息,我们想要统计一些数据
阅读全文
摘要:实现增量数据索引 上一节中,我们为实现增量索引的加载做了充足的准备,使用到 开源组件来实现MySQL 的binlog监听,关于binlog的相关知识,大家可以自行网络查阅。或者可以 本节我们将根据binlog 的数据对象,来实现增量数据的处理,我们构建广告的增量数据,其实说白了就是为了在后期能把广告
阅读全文
摘要:MySQL Binlog简介 什么是binlog? 一个二进制日志,用来记录对数据发生或潜在发生更改的SQL语句,并以而进行的形式保存在磁盘中。 binlog 的作用? 最主要有3个用途: 数据复制(主从同步) Mysql 的Master Slave协议,让Slave可以通过监听binlog实现数据
阅读全文
摘要:上一节我们实现了索引基本操作的类以及索引缓存工具类,本小节我们开始实现加载全量索引数据,在加载全量索引数据之前,我们需要先将数据库中的表数据导出到一份文件中。Let's code. 1.首先定义一个常量类,用来存储导出文件存储的目录和文件名称 因为我们导出的文件需要在搜索服务中使用到,因此,我们将文
阅读全文
摘要:"上一节" 我们分析了广告索引的维护有2种, 和`增量索引维护`。因为广告检索是广告系统中最为重要的环节,大家一定要认真理解我们索引设计的思路,接下来我们来编码实现索引维护功能。 我们来定义一个接口,来接收所有index的增删改查操作,接口定义一个范型,来接收2个参数, 代表我们索引的健值, 代表返
阅读全文
摘要:索引设计介绍 在我们广告系统中,为了我们能更快的拿到我们想要的广告数据,我们需要对广告数据添加类似于数据库index一样的索引结构,分两大类: 和`倒排索引`。 正向索引 通过唯一键/主键生成与对象的映射关系。 比如,我们从数据库中查询数据的时候,根据数据主键ID查询当前记录,其实就是一个正向索引的
阅读全文
摘要:上一节我们使用了Ribbon(基于 )进行微服务的调用,Ribbon的调用比较简单,通过Ribbon组件对请求的服务进行拦截,通过 获取到服务实例的 ,然后再去调用API。本节课我们使用更简单的方式来实现,使用声明式的 服务客户端 ,我们只需要使用Feign来声明接口,利用 来进行配置就可以使用了,
阅读全文
摘要:在使用Ribbon调用广告投放系统API之前,我们需要先创建2个VO对象, ,`AdPlanGetRequestVO`. 在 启动类中,添加 客户端。 创建一个controller,来测试调用广告提供系统的API
阅读全文
摘要:搜索系统启动主类 配置文件
阅读全文
摘要:工作流程 项目依赖
阅读全文