Java学习录

专注于Java知识体系学习,Spring、SpringBoot、SpringCloud源码解析
我们知道binlog有两种常用的格式,一种是statement(默认),一种是row,很多人都说建议你修改为row格式,那么是为什么呢? 首先我们需要知道它们两个之间有什么不同? **statement格式记录的我们写的SQL语句,而row格式记录的则是实际受影响的数据的变化前后值** 这里举两个例子说明一下: 删除 statement记录的是这个删除的语句,例如: ``` dele......

2020-03-02 08:58:00

漫谈数据库大事务
**什么是大事务?** 简单来说就是那些运行时间比较长,操作的数据比较多的事务 **如何查询大事务?** 以查询执行时间超过10秒的事务为例: ``` select * from information_schema.innodb_trx where TIME_TO_SEC(timediff(now(),trx_started))>10 ``` 大事务一般会对数据库造成什么问题......
2019年末投了几个简历,20年初收到了杭州阿里和北京美团的面邀 接下来的面经将合并两场面试的问题,如果有都问到的会在问题后面标记(double) 多线程 死锁的条件,如何打破 JMM 如何创建线程池,队列都有哪些?拒绝策略都有哪些?任务过多时都是如何处理的(double) 线程生命周期 synchronized原理(double) jdk对synchronized做了哪......

2020-01-15 08:58:00

网络系列文章汇总
>本篇文章是关于网络部分的文章汇总 [TCP三次握手、四次挥手、滑动窗口、流量控制](https://mp.weixin.qq.com/s/y2lPFzQUlw4p5oZye56VbA) 本篇文章重点介绍了TCP协议相关的内容,具体内容可见标题 [什么是DNS?](https://mp.weixin.qq.com/s/wA6hqSkiBq_IOCR9z-uiDQ) 以访问我的博客sh......
通常情况下,我们最熟悉的查看平均负载的命令可能就是`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分钟内的平均负载,那么在生产环境中,当系统负载达到多少的时候需要我们特别注意呢? ......
首先我们来看如何查看系统的上下文切换情况 `vmstat 5` ![file](/posts/性能调优/2128f8791bd5ab042ecb901576033925.png) 其中跟本文相关的比较重要的几列的含义: + r:正在运行和等待CPU的进程数 + b:处于不可中断睡眠状态的进程数 + in:每秒中断次数 + cs:每秒上下文切换次数 + us:用户进程占用的cpu + sy:......

2019-12-05 09:54:08

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