自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(197)
  • 资源 (7)
  • 收藏
  • 关注

原创 SpringCloud服务调用源码解析汇总

相信我,你会收藏这篇文章的,本篇文章涉及Ribbon、Hystrix、Feign三个组件的源码解析这篇文章介绍了Ribbon的基础架构,也就是下图涉及到的6大组件:这篇文...

2019-11-06 08:08:00 709

原创 SpringBoot源码解析系列文章汇总

相信我,你会收藏这篇文章的本篇文章是这段时间撸出来的SpringBoot源码解析系列文章的汇总,当你使用SpringBoot不仅仅满足于基本使用时、或者出去面试被面试官虐...

2019-10-10 08:08:00 2669

原创 Spring源码解析系列汇总

相信我,你会收藏这篇文章的本篇文章是这段时间撸出来的Spring源码解析系列文章的汇总,总共包含以下专题。喜欢的同学可以收藏起来以备不时之需SpringIOC源码解析(上...

2019-09-06 10:10:00 432

原创 为什么要把MySQL的binlog格式修改为row

我们知道binlog有两种常用的格式,一种是statement(默认),一种是row,很多人都说建议你修改为row格式,那么是为什么呢?首先我们需要知道它们两个之间有什么不同?statement格式记录的我们写的SQL语句,而row格式记录的则是实际受影响的数据的变化前后值这里举两个例子说明一下:删除statement记录的是这个删除的语句,例如:delete from t where...

2020-03-15 16:24:55 1159 1

原创 面试官:你知道大事务会带来什么问题以及如何解决么?

什么是大事务?简单来说就是那些运行时间比较长,操作的数据比较多的事务如何查询大事务?以查询执行时间超过10秒的事务为例:select * from information_schema.innodb_trx where TIME_TO_SEC(timediff(now(),trx_started))>10大事务一般会对数据库造成什么问题?锁定数据过多,容易造成大量的死锁和锁超时...

2020-03-10 10:46:34 921

原创 2020最新阿里美团Java面经

小弟是97年出生,专科18年毕业,专升本在读。工作时间总计2年半2019年12月30号投了几个简历,收到了杭州阿里和北京美团的面邀阿里,31号电面,2020年元旦中午1点在线编程。最后挂了,面试官大哥说等我工作满三年再捞我北京美团2020年1月2号现场面,技术面过了,最后因为学历是大专遗憾离场接下来的面经将合并两场面试的问题,如果有都问到的会在问题后面标记(double)多线程死锁的条...

2020-01-08 09:12:33 2321 6

原创 SpringCloud Gateway拦截器遇到的小坑汇总

很多朋友在使用SpringCloudGateway的时候可能都碰到过以下几个问题SpringCloudGateway中如何读取Post请求体 private BodyInserter getBodyInserter(ServerWebExchange exchange) { ServerRequest serverRequest = new DefaultServerR...

2019-11-28 09:17:29 6310 5

原创 Zipkin服务端源码解析

还记得这个我们zipkin系列的第一篇文章中提到过的架构图么,服务端组件就这么几个,很简单。其中稍微有点内涵的也就是collector和storage分别提供了多种不同的...

2019-11-20 08:08:00 943

原创 Zipkin客户端链路追踪源码解析

我们知道,Zipkin这个工具可以帮助我们收集分布式系统中各个系统之间的调用连关系,而且除了Servlet之外还能收集:MQ、线程池、WebSocket、Feign、Hystrix、RxJava、WebFlux等等组件之间的调用关系。本篇文章就来分析一下Zipkin是如何完成这些功能的我们先以最常用的Servlet接受请求为例来分析在spring-cloud-sleuth的spring.facto...

2019-11-19 08:08:00 774

原创 Zipkin架构简介

Zipkin基本概念Span:基本工作单元,一次链路调用就会创建一个SpanTrace:一组Span的集合,表示一条调用链路。举个例子:当前存在服务A调用服务B然后调用服务C,这个A->B->C的链路就是一条Trace,而每个服务例如B就是一个Span,如果在服务B中另起2个线程分别调用了D、E,那么D、E就是B的子SpanZipkin架构先看一下架构图其中左边部分代表了客户端分别为:...

2019-11-07 08:08:00 460

原创 Feign整合Ribbon和Hystrix源码解析

我们直接来看这个类的getObject方法:public Object getObject() throws Exception { FeignCont...

2019-11-05 08:08:00 448

原创 Feign自动装配原理

spring.factories按照以往的惯例,在研究源码的时候,我们先看一下spring.factories文件下自动装配的类FeignAutoConfiguration,其中比较重要的东西有这么几个@Autowired(required = false) private List<FeignClientSpecification> configurations = new...

2019-11-04 08:08:00 613

原创 Hystrix熔断器

在深入研究熔断器之前,我们需要先看一下Hystrix的几个重要的默认配置,这几个配置在HystrixCommandProperties中//时间窗(ms) static final Integer default_metricsRollingStatisticalWindow = 10000; //最少请求次数 private static final Integer default_ci...

2019-11-01 08:08:00 190

原创 Hystrix失败处理逻辑解析

熔断器打开线程池/信号量跑满调用超时调用失败本篇文章则介绍一下在发生降级时Hystrix的处理细节,下面的方法异常的处理逻辑:final Func1<Throwab...

2019-10-31 08:08:00 459

原创 汪峰:我怎么又没抢上头条呢?

昨天(10月30日),娱乐圈爆出了李小璐PGONE亲密视频、肖战杨紫余生预告,赵丽颖王一博有翡预告,吴亦凡杨紫官宣簪中录等等大瓜,我们一众吃瓜群众可谓吃的很开心。但是有个人可不是很开心,那就是汪峰老师。汪峰老师发了一个长文,内容如下:尽管汪峰老师发长文感慨,但是却没有上热搜份。同样今年6月27日,汪峰老师发文称自己的演唱会将要开始了。并在微博中称说谁也不要和他抢头条:“27号,北京演唱会,@稀土部...

2019-10-31 08:08:00 274

原创 Hystrix工作流程解析

搭建Hystrix源码阅读环境引入依赖 <dependency> <groupId>com.netflix...

2019-10-30 08:08:00 391

原创 Ribbon架构剖析

首先我们知道,在普通项目中Ribbon的使用是这样的@SpringBootApplication @RibbonClient(name = "provider-demo...

2019-10-29 08:08:00 472

原创 Eureka源码解析系列文章汇总

上方这个图是Eureka官方提供的架构图,整张图基本上把整个Eureka的核心功能给列出来了,当你要阅读Eureka的源码时可以参考着这个图和下方这些文章EurekaSe...

2019-10-24 08:08:00 210

原创 Eureka自我保护机制源码解析

默认情况下,当EurekaServer在一定时间内(默认90秒)没有接收到某个客户端实例的心跳,EurekaServer将会注销该实例。但是当网络分区故障发生时,客户端与...

2019-10-23 08:08:00 257

原创 Eureka服务下线源码解析

我们知道,在Eureka中,可以使用如下方法使Eureka主动下线,那么本篇文章就来分析一下子这个下线的流程主要做了这么几件事:解除状态监听器取消心跳、刷新线程priva...

2019-10-22 08:08:00 500

原创 Eureka获取服务列表源码解析

在之前的文章:DiscoveryClient的构造方法中存在一个刷新线程和从服务端拉取注册信息的操作这两个就是eureka获取服务列表的两种情况:全量获取:Eureka启...

2019-10-21 08:08:00 1185

原创 Eureka客户端续约及服务端过期租约清理源码解析

在之前的文章:EurekaClient自动装配及启动流程解析中,我们提到了在构造DiscoveryClient时除了包含注册流程之外,还调度了一个心跳线程:schedul...

2019-10-18 08:08:00 515

原创 Eureka应用注册与集群数据同步源码解析

在之前的EurekaClient自动装配及启动流程解析一文中我们提到过,在构造DiscoveryClient类时,会把自身注册到服务端,本文就来分析一下这个注册流程客户端...

2019-10-17 08:08:00 187

原创 Eureka重要对象简介

在进行分析EurekaClient和EurekaServer之间通信的源码之前,我们首先需要熟悉一下几个实体类InstanceInfo这个类代表着EurekaClient...

2019-10-16 08:08:00 188

原创 EurekaClient自动装配及启动流程解析

在上篇文章中,我们简单介绍了EurekaServer自动装配及启动流程解析,本篇文章则继续研究EurekaClient的相关代码老规矩,先看spring.factorie...

2019-10-12 08:08:00 366

原创 EurekaServer自动装配及启动流程解析

在开始本篇文章之前,我想你对SpringCloud和SpringBoot的基本使用以及比较熟悉了,如果不熟悉的话可以参考我之前写过的文章本篇文章的源码基于SpringBo...

2019-10-11 08:08:00 355

原创 SpringBoot健康检查实现原理

相信看完之前文章的同学都知道了SpringBoot自动装配的套路了,直接看spring.factories文件,当我们使用的时候只需要引入如下依赖 <...

2019-10-09 08:08:00 1328

原创 SpringBoot嵌入式Tomcat的自动配置原理

在读本篇文章之前如果你读过这篇文章SpringBoot自动装配原理解析应该会更加轻松准备工作我们知道SpringBoot的自动装配的秘密在org.springframew...

2019-09-26 08:08:00 167

原创 SpringApplication到底run了什么(下)

在上篇文章中SpringApplication到底run了什么(上)中,我们分析了下面这个run方法的前半部分,本篇文章继续开工123456789101112131415...

2019-09-25 08:08:00 260

原创 SpringApplication到底run了什么(上)

在上篇文章:SpringBoot源码解析:创建SpringApplication对象实例中,我们详细描述了SpringApplication对象实例的创建过程,本篇文章继...

2019-09-24 08:08:00 331

原创 SpringBoot源码解析:创建SpringApplication对象实例

上篇文章SpringBoot自动装配原理解析中,我们分析了SpringBoot的自动装配原理以及@SpringBootApplication注解的原理,本篇文章则继续基于...

2019-09-23 08:08:00 136

原创 SpringBoot自动装配原理解析

本文包含:SpringBoot的自动配置原理及如何自定义SpringBootStar等我们知道,在使用SpringBoot的时候,我们只需要如下方式即可直接启动一个Web...

2019-09-20 08:08:00 914

原创 面试官:你知道Spring中有哪些可以让我们扩展的地方么

大家都知道我这段时间陆续更新了Spring系列源码分析以及各种扩展点的文章,到了今天可以总算可以更新这篇文章了首先列举一下一个经典的面试题:Spring中Bean的生命周...

2019-09-19 08:08:00 215

原创 Spring事件监听机制

前言Spring中的事件机制其实就是设计模式中的观察者模式,主要由以下角色构成:事件事件监听器(监听并处理事件)事件发布者(发布事件)首先看一下监听器和发布者的接口定义1...

2019-09-18 08:08:00 137

原创 Spring扩展点之FactoryBean接口

首先看一下接口定义1234567891011121314151617181920212223public interface FactoryBean<T> {...

2019-09-17 08:08:00 160

原创 Spring扩展点之Aware接口族

Spring中提供了各种Aware接口,方便从上下文中获取当前的运行环境,比较常见的几个子接口有:BeanFactoryAware,BeanNameAware,Appli...

2019-09-16 09:40:00 187

原创 Spring扩展点之BeanFactoryPostProcessor

前言BeanFactoryPostProcessor接口是Spring中一个非常重要的接口,它的接口定义如下123public interface BeanFactory...

2019-09-12 08:08:00 165

原创 有哪些你不知道的阅读源码的技巧

1. 先看官方文档和架构图优秀的开源组件官方都会维护文档和架构图,这份架构图上或许有一些最重要的组件之间的关联关系、或许哪些功能的调用流程、或许有一些别的东西,但是相信我,这些东西一定都是从总体来描述这个项目的,这个一定是你要阅读源码时第一个要看的2. 再看项目的组织结构下载下来代码之后,不要急着开始。先看一下各个包名和包里的类名,对照着文档和类名先简单猜一下各个类的大致作用3. 找到启动...

2019-09-11 14:33:17 207

原创 Spring扩展点之BeanPostProcessor

前言BeanPostProcessor接口是Spring中一个非常重要的接口,它的接口定义如下123456public interface BeanPostProcess...

2019-09-11 08:08:00 183

原创 为什么我建议你去阅读优秀的源码

最现实的原因如果你想进大厂,没有大厂的面试官会不问你常用组件的源码实现。虽然很多人都说大厂都是面试造火箭,入职拧螺丝。但是人家拧螺丝也要招那个会造火箭的人来拧解决问题的速...

2019-09-10 08:08:00 179

MySql Oracle Redis Mycat MongoDB Memcached等数据库教程.zip

MySql Oracle Redis Mycat MongoDB Memcached等数据库教程.zip

2019-09-29

JVM性能调优垃圾收集算法虚拟机组成.zip

JVM性能调优垃圾收集算法虚拟机组成.zip

2019-09-29

java初级进阶到架构师148讲视频教程.zip

java初级进阶到架构师148讲视频教

2019-09-29

Java8新特性与设计模式.zip

Java8新特性与设计模式.zip

2019-09-29

Angular Vue Easy UI ExtJS前端框架视频教程.zip

Angular Vue Easy UI ExtJS前端框架视频教程.zip

2019-09-29

92天的python 全栈开发-项目实战.zip

python 全栈开发-项目实战

2019-09-29

20G腾讯课堂公开课课程汇总.zip

腾讯课堂公开课课程汇总腾 总

2019-09-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除