`
文章列表
小弟是97年出生,专科18年毕业,专升本在读。工作时间总计2年半 2019年12月30号投了几个简历,收到了杭州阿里和北京美团的面邀 阿里,31号电面,2020年元旦中午1点在线编程。最后挂了,面试官大哥说等我工作满三年再捞我 北京美团2020年1月2号现场面,技术面过了,最后因为学历是大专遗憾离场 接下来的面经将合并两场面试的问题,如果有都问到的会在问题后面标记(double) 多线程 死锁的条件,如何打破 JMM 如何创建线程池,队列都有哪些?拒绝策略都有哪些?任务过多时都是如何处理的(double) 线程生命周期 synchronized原理(double) ...
很多朋友在使用SpringCloudGateway的时候可能都碰到过以下几个问题 SpringCloudGateway中如何读取Post请求体 private BodyInserter getBodyInserter(ServerWebExchange exchange) { ServerRequest serverRequest = new DefaultServerRequest(exchange);
相信我,你会收藏这篇文章的,本篇文章涉及Ribbon、Hystrix、Feign三个组件的源码解析 Ribbon架构剖析 这篇文章介绍了Ribbon的基础架构,也就是下图涉及到的6大组件: Ribbon源码解析 这篇文章以上篇文章为基础,详细介绍了Ribbon的代码执行流程:Ribbon的自动装配->请求拦截器->负载均衡 Hystrix工作流程解析 这篇文章详细介绍了Hystrix的工作流程,也就是如下图涉及到的9个步骤: Hystrix失败处理逻辑解析 这篇文章详细介绍了当Hystrix执行过程中遇到:熔断器打开、线程池/信号量跑满、调用超时 、 ...
先看一张图 这个图是Eureka官方提供的架构图,整张图基本上把整个Eureka的核心功能给列出来了,当你要阅读Eureka的源码时可以参考着这个图和下方这些文章 # EurekaServer EurekaServer就是我们常说的服务端 Eureka服务端的启动可参考这篇文章EurekaServer自动装配及启动流程解析 它维护了一张服务注册表,在这个服务注册表中包含了所有的客户端信息 当服务端启动时会做这么几个事情: 向集群中的其他服务端发起数据同步请求:Eureka应用注册与集群数据同步源码解析 开启清理过期租约的线程:Eureka客户端续约及服务端过期租约清理源 ...
相信我,你会收藏这篇文章的   本篇文章是这段时间撸出来的SpringBoot源码解析系列文章的汇总,当你使用SpringBoot不仅仅满足于基本使用时、或者出去面试被面试官虐了时、或者说想要深入了解一下这个东西时,那么这篇文章绝对能够满足你   SpringBoot自动装配原理解析   本篇文章是当你想要深入学习SpringBoot时最应该读的一篇文章,它包含了SpringBoot的精髓:约定大于配置这句话的原理及实现方式,除了自动装配的原理之外还包含了一个自定义Star的小惊喜   SpringBoot源码解析:创建SpringApplication对象实例Spr ...
本文包含:SpringBoot的自动配置原理及如何自定义SpringBootStar等 我们知道,在使用SpringBoot的时候,我们只需要如下方式即可直接启动一个Web程序: @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } 和我们之前使用普通Spring时繁琐的配置相比简直 ...
大家都知道我这段时间陆续更新了Spring系列源码分析以及各种扩展点的文章,到了今天可以总算可以更新这篇文章了   首先列举一下一个经典的面试题:Spring中Bean的生命周期: 开始初始化容器 加载BeanFactoryPostProcessor实现类 执行BeanFactoryPostProcessor的postProcessBeanFactory方法 加载
最现实的原因 如果你想进大厂,没有大厂的面试官会不问你常用组件的源码实现。虽然很多人都说大厂都是面试造火箭,入职拧螺丝。但是人家拧螺丝也要招那个会造火箭的人来拧 解决问题的速度 当线上出现问题时,阅读过 ...
1. 先看官方文档和架构图 优秀的开源组件官方都会维护文档和架构图,这份架构图上或许有一些最重要的组件之间的关联关系、或许哪些功能的调用流程、或许有一些别的东西,但是相信我,这些东西一定都是从总体来描述这个项目的,这个一定是你要阅读源码时第一个要看的 2. 再看项目的组织结构 下载下来代码之后,不要急着开始。先看一下各个包名和包里的类名,对照着文档和类名先简单猜一下各个类的大致作用 3. 找到启动demo,把项目跑起来 阅读源码不仅仅是阅读,要让项目跑起来,去调试它,去观察和改变它的运行路线 4. 找到阅读的起点 很多人都想阅读源码,但是面对庞大的代码库不知道如何下手。这个时候 ...
相信我,你会收藏这篇文章的 本篇文章是这段时间撸出来的Spring源码解析系列文章的汇总,总共包含以下专题。喜欢的同学可以收藏起来以备不时之需 SpringIOC源码解析(上) 本篇文章搭建了IOC源码解析的demo环境,启动这个环境即可开启阅读Spring源码的第一步 开始源码阅读时介绍了Spring容器中最经典的容器ClassPathXmlApplicationContext,这个容器是我们在学习Spring的时候最先接触的一个容器,它负责加载当前环境下的xml配置文件 紧接着介绍了bean工厂BeanFactory以及容器中bean的包装类BeanDefiniti ...
作为一名高级工程师,性能调优是必不可少的技能,本篇文章是性能调优系列文章的第一篇 导致性能瓶颈的几点原因 CPU:如果系统中存在视频分析、3D渲染、大量计算这样的应用时,大量的CPU资源的竞争就会引起性能瓶颈 ...
避免对boolean类型的判定 反例: <figure class="highlight smalltalk"><table><tr> <td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td> <td class=&quo ...
前几天在使用k8s中的CronJob时发现了一个很奇怪的问题, 按照官方文档的demo跑起来是没有任何问题的, 但是当我想要设置每天一个固定时间点例如12点20执行一个job的时候,到了时间之后无论如何都不会执行。 一开始怀疑是cron表达式写的有问题,但是经过多次试验倒是没问题,然后就想到了时区的问题。 首先我先尝试使用PodPreset来修改所有容器的时区(在pod 创建时,用户可以使用 podpreset 对象将特定信息注入 pod 中,这些信息可以包括 secret、 卷、 卷挂载和环境变量) 默认k8s是没有开启PodPreset的,开启PodPreset需要修改master节点上的/ ...
1、首先在github上注册一个自己的账号 2、然后在左上部分搜索一个开源项目,比如说我的项目syj-ratelimit 3、进入项目之后,单击右上角的fork按钮,github就会在你的帐户下fork一个同样的项目。 4、此时点击右上角自己的头像,可以 ...
注意,看完这篇文章需要很长很长很长时间。。。 本篇文章是SpringIOC源码解析(上)的续集,上一篇文章介绍了使用XML的方式启动Spring,然后追踪了BeanFactory容器的创建、配置文件的解析、Bean的注册等。 12. finishBeanFactoryInitialization() 前方超长篇幅预警。。。 刚才我们提到了bean还没有初始化。这个方法就是负责初始化所有的没有设置懒加载的singleton bean 开始撸了 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ...
Global site tag (gtag.js) - Google Analytics