- 浏览: 43115 次
- 性别:
最新评论
文章列表
小弟是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
...