自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 JVM笔记

jvm笔记,jvm大部分内容都在这里

2022-11-26 10:01:44 303 1

原创 并发编程笔记——多线程设计模式

多线程设计模式

2022-11-02 16:01:22 249

原创 并发编程笔记——CompletableFuture

从JDK 8开始,在Concurrent包中提供了⼀个强⼤的异步编程⼯具CompletableFuture。这里介绍一下CompletableFuture的一些主要用法

2022-10-31 18:51:18 249

原创 线程池笔记

shutdown():遍历workers,调用tryLock()判断线程是否空闲,是空闲,则调用interrupt()方法中断线程。shutdownNow():不会调用tryLock(),而是直接调用interruptWorkers();tryLock()方法核心也是cas操作,尝试将线程的状态变量从0变成1,操作成功返回true,失败返回false。步骤⼀:判断当前线程数是否⼤于或等于corePoolSize。调用其tryLock()方法,如果没获取到锁,表示线程在忙,如果获取到了锁,表示线程是空闲的。.

2022-08-05 09:54:09 244

原创 并发编程笔记——并发容器、 同步⼯具类、原子操作类

并发编程中常用的容器:BlockingQueue的几个实现类,如CopyOnWrite一些同步工具类如:CyclicBarrier、CountDownLatch,一些Atomic原子类如:AtomicLong、LongAdder

2022-08-01 16:10:21 107

原创 MySQL的Log文件

MySQL的Undo Log、Redo Log 和 Binlog文件介绍Undo Log概念:数据库事务开始之前,会将要修改的记录存放到 Undo 日志里,当事务回滚时或者数据库崩溃时,可以利用 Undo 日志,撤销未提交事务对数据库产生的影响。生命周期:Undo Log在事务开始前产生;事务在提交时,并不会立刻删除undo log,innodb会将该事务对应的undo log放入到删除列表中,后面会通过后台线程purge thread进行回收处理。Undo Log属于逻辑日志,记录一个变

2022-02-28 16:16:05 3703

原创 MySQL之InnoDB数据文件结构

InnoDB数据文件存储结构分为一个ibd数据文件–>Segment(段)–>Extent(区)–>Page(页)–>Row(行)Tablesapce表空间,用于存储多个ibd数据文件,用于存储表的记录和索引。一个文件包含多个段。Segment段,用于管理多个Extent,分为数据段(Leaf node segment)、索引段(Non-leaf node segment)、回滚段(Rollback segment)。一个表至少会有两个segment,一个管理数据,一个管.

2022-02-26 11:18:03 741

原创 MySQL之InnoDB线程模型

IO Thread在InnoDB中使用了大量的AIO(Async IO)来做读写处理,这样可以极大提高数据库的性能。在InnoDB1.0版本之前共有4个IO Thread,分别是write,read,insert buffer和log thread,后来版本将read thread和write thread分别增大到了4个,一共有10个了。read thread : 负责读取操作,将数据从磁盘加载到缓存page页。4个write thread:负责写操作,将缓存脏页刷新到磁盘。4个log thre.

2022-02-25 17:38:12 85

原创 MySQL的InnoDB引擎存储结构

概述从MySQL 5.5版本开始默认使用InnoDB作为引擎,它擅长处理事务,具有自动崩溃恢复的特性,在日常开发中使用非常广泛。下面是官方的InnoDB引擎架构图,主要分为内存结构和磁盘结构两大部分。内存结构内存结构主要包括Buffer Pool、Change Buffer、Adaptive Hash Index和Log Buffer四大组件。1.Buffer Pool:缓冲池,简称BP。BP以Page页为单位,默认大小16K,BP的底层采用链表数据结构管理Page。在InnoDB访问表记录和

2022-02-25 17:26:53 505

原创 MySQL运行机制笔记

概述:运行机制:一个SQL命令执行时mysql都做了些什么或者说是怎么运行的总体流程见下图:步骤分解:总体可以分为4个:连接机制、查询缓存机制、解析和优化机制、执行引擎机制1.连接机制:2.查询缓存机制:3.解析和优化机制:4.执行引擎机制 :...

2022-02-25 15:10:49 116

原创 SpringCloud组件之Stream笔记

SpringCloud组件之Stream笔记

2022-02-25 11:37:13 301

原创 SpringCloud之Sleuth和Zipkin笔记

概念Sleuth+Zipkin是分布式链路追踪技术中的一种,其中重要的概念包含:Trace:一次访问的链路TraceID:链路的唯一标识Span:链路中节点之间的交互SpanID:一次交互的唯一标识Sleuth:通过日志的方式记录踪迹数据Zipkin:收集Sleuth提供的数据,进行整合,展示数据快速入门(Sleuth)2.1 引入依赖<!--链路追踪--><dependency> <groupId>org.springframewor.

2022-02-09 17:31:43 1484

原创 SpringCloud之ConfigServer笔记

SpringCloud的Config-Server快速入门1.引入依赖 spring-cloud-config-server2.开启注解 @EnableConfigServer3.application.yml配置(可以配置从git上获取配置文件)4.启动服务,测试访问:http://ip:port/分支名/xxx-dev.yml客户端配置1.引入依赖 spring-cloud-config-client2.修改or创建 bootstrap.yml# config客户端配

2021-11-26 17:17:43 456

原创 SpringCloud之GateWay组件笔记

工作原理:1.Gateway Handler Mapping 拦截,匹配路由规则2.Gateway Web Handler通过过滤器链将请求发送到对应处理器环境搭建注意事项1.引入依赖:Gateway不需要springboot的web模块,它用的是WebFlux,不要引入web依赖2.配置文件:spring: application: name: lagou-cloud-gateway cloud: gateway: routes: # 路由可以有多个 .

2021-11-25 17:13:12 286

原创 NIO编程基础

NIO三大核心:Channel、Buffer、SelectorBuffer类缓冲区有七大可操作类:ByteBuffer、LongBuffer、CharBuffer(除了Boolean类型的其他7个基本类型)Buffer类有两个静态方法来实例化对象:ByteBuffer.allocate(int i):指定容量ByteBuffer.wrap(byte[] bs):创建有内容的buffer对象Buffer类提供的api:方法作用position()当前索引位置limi

2021-07-26 15:39:45 74

原创 网络编程BIO、NIO和AIO对比

BIO、NIO和AIO对比:1. 应用场景:模型适用场景BIO连接数少和连接时间短的场景NIO连接数多和连接时间短的场景AIO连接数多和连接时间长的场景2. 同步和阻塞情况对比模型同步和阻塞情况BIO同步阻塞,类似一个人守一个水壶NIO同步非阻塞,类似一个人守多个水壶AIO异步非阻塞,类似无人守水壶,水烧开会自动通知3. 同步和异步,阻塞和非阻塞概念概念解释同步访问一个资源时,需要等待进程去

2021-07-26 15:33:46 100

原创 关于Nginx配置中对于location末尾的“/“的处理

背景我们在配置nginx的nginx.conf文件中,会存在location配置项,一般我们会在大括号{}中配置的参数有:proxy_pass、root、alias。这里有一个问题:这些参数的属性值末尾处加不加斜杠“/”,在nginx跳转时不会拼接上location里的路径?如图:试验结果记录问:加"/“和不加”/"时,跳转会不会拼接上location里的路径?答:参数项加"/"不加"/"proxy_pass不会会root会会alias不会会报错

2021-07-19 16:13:56 6680

原创 Tomcat架构基本解析

Tomcat由两大核心组件:Connector和ContainerConnector:连接器,负责处理http请求,将字节流和Http对象相互转化Container:容器,负责加载servlet,处理请求Tomcat的Connector组件——Coyotecoyote是Tomcat的连接器组件,它负责的具体任务有:具体协议:支持http1.1、http2.0(tomcat8.5之后)、AJP,默认:http1.1IO相关内容:支持nio、nio2、APR,默认:nio(tomcat8.0之后

2021-07-19 15:52:45 84

原创 spring-boot热部署和idea自动更新对比

1.使用SpringBoot热部署目的springboot热部署可以让我们在修改代码的时候,不用每次都手动重启应用。它会自动重启服务,并且比手动重启消耗的时间更少。2.快速入门1.引入jar包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactI

2021-06-29 18:04:08 1998

原创 FastDFS安装教程(单机)

0.安装包所有的组件都可以从github或者gitee上下载,这是fastdfs开发团队在github的开源项目:https://github.com/happyfish100注意:每个组件都有个HISTORY文件,在里面可以看各版本兼容1.libfastcommon:版本1.0.51,fastdfs的基础C函数库2.fastdfs :版本6.07,fastdfs核心组件3.fastdfs-nginx-module:版本1.22,fastdfs集成nginx模块4.nginx:版本1.20

2021-06-15 17:50:31 527 1

原创 MyBatis(MP)增强SQL注入原理

1.扫描识别项目启动时,我们所写的继承了BaseMapper的接口(XxMapper extends BaseMapper)会被MP中的组件所识别。而这个识别的核心组件就是 IsqlInjector,它是一个接口,表示具有sql注入功能的接口。这个IsqlInjector接口的实现由AbstractSqlInjector类实现,AbstractSqlInjector是一个抽象类,它里面实现了接口定义的inspectInject()方法:@Overridepublic void inspe

2021-06-08 09:58:33 378

原创 阶段一:Mybatis学习笔记

Mybatis一对一、一对多、多对多关系映射实例Mybatis自定义插件配置Mybatis延迟加载原理Mybatis二级缓存流程笔记Mybatis架构设计原理笔记

2021-06-06 21:39:05 56

原创 Mybatis延迟加载原理

阶段一 调用SQLSession的查询方法时:例如执行代码“T t = sqlSession.selecOne();”时Mybatis会返回一个T类型的代理对象,部分源码如图 // 创建映射后的结果对象 Object resultObject = createResultObject(rsw, resultMap, constructorArgTypes, constructorArgs, columnPrefix); if (resultObject != null

2021-06-05 17:12:57 246

原创 Mybatis二级缓存流程笔记

Mybatis开启二级缓存步骤:点我跳转

2021-06-05 15:06:12 80

原创 Mybatis架构设计原理笔记

Mybatis架构设计原理1.首先架构功能分为三层:层级描述接口层我们调用的API框架支撑层负责解析SQL,执行SQL,结果映射处理数据处理层连接池、缓存、事务2.其次是Mybatis的核心组件:组件名描述SqlSession执行CURD的API入口Executorsql执行器,通过statementid找到要执行的sql,并在该层执行缓存操作StatementHandlerExecutor通过调用该组件来将mapped

2021-06-04 16:52:36 80

原创 Mybatis自定义插件配置和PageHelper插件实例

Mybatis自定义插件配置思路设计一个自定义插件类添加相关配置或添加bean实现1.自定义插件MySqlPulgin类@Intercepts({ @Signature( type = StatementHandler.class, method = "query", args = {Statement.class, ResultHandler.class} )}

2021-06-03 22:51:20 662

原创 Mybatis一对一、一对多、多对多关系映射实例

一对一对象关一对多多对多

2021-06-01 15:41:53 105

空空如也

空空如也

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

TA关注的人

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