Java学习录

专注于Java知识体系学习,Spring、SpringBoot、SpringCloud源码解析
首先我们来看如何查看系统的上下文切换情况 `vmstat 5` ![file](/posts/性能调优/2128f8791bd5ab042ecb901576033925.png) 其中跟本文相关的比较重要的几列的含义: + r:正在运行和等待CPU的进程数 + b:处于不可中断睡眠状态的进程数 + in:每秒中断次数 + cs:每秒上下文切换次数 + us:用户进程占......
通常情况下,我们最熟悉的查看平均负载的命令可能就是`uptime`这个命令了 ``` [root@node3 ~] uptime 22:33:18 up 174 days, 6:41, 1 user, load average: 0.06, 0.36, 0.65 ``` 最后3个值分别是过去1、5、15分钟内的平均负载,那么在生产环境中,当系统负载达到多少的时候需要我们特......

2019-12-05 09:54:08

聊一聊CPU上下文切换
CPU上下文 多核CPU在运行任务时,使用程序计数器来存储当前执行指令的位置或者下一条将要执行的指令的位置,而CPU寄存器则是CPU中的内存。它们都是CPU在运行时必须依赖的环境,因此也被称作为CPU上下文 CPU上下文切换 CPU上下文切换就是把前一个任务的上下文(也就是CPU寄存器和程序计数器)保存起来,然后加载新任务的上下文开始执行。 而保存起来的......
之前的几篇文章中,我们已经提到了如何使用SpringCloud Gateway,那几篇文章的内容已经足够做普通项目使用了,但是如果你想深入了解这个东西,或者说是看完这篇文章你用起来跟普通人就完全不是一个等级的了 路由谓语工厂的骚操作 AfterRoutePredicateFactory 前置时间路由工厂,匹配当前时间发生后的请求 ``` sprin......
很多朋友在使用SpringCloudGateway的时候可能都碰到过以下几个问题 SpringCloudGateway中如何读取Post请求体 ``` private BodyInserter getBodyInserter(ServerWebExchange exchange) { ServerRequest serverRequest = ne......
本文将会介绍SpringCloud Gateway的基本使用 首先,引入gateway的依赖 ``` org.springframework.cloud spring-cloud-starter-gateway

2019-11-19 09:54:08

Zipkin服务端源码解析
![file](/posts/性能调优/2124f765b91c850d8f76001574178821.png) 还记得这个我们zipkin系列的第一篇文章中提到过的架构图么,服务端组件就这么几个,很简单。 其中稍微有点内涵的也就是collector和storage分别提供了多种不同的实现,collector支持http、rabbitMq、kafka而storage支持内存、mys......

2019-11-16 09:54:08

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

2019-11-06 09:54:08

Zipkin架构简介
Zipkin基本概念 1. Span:基本工作单元,一次链路调用就会创建一个Span 2. Trace:一组Span的集合,表示一条调用链路。举个例子:当前存在服务A调用服务B然后调用服务C,这个A->B->C的链路就是一条Trace,而每个服务例如B就是一个Span,如果在服务B中另起2个线程分别调用了D、E,那么D、E就是B的子Span Zipkin架构 ......

2019-11-03 09:54:08

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