自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(169)
  • 资源 (1)
  • 收藏
  • 关注

原创 kubernetes

Pod是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元。deployment控制器创建的应用是deployment控制器类型的应用。deployment控制器类型的应用。deployment控制器类型的应用。clusterip只能在集群内访问。deployment部署的应用。

2026-11-08 00:22:26 22

原创 redis【TL redis(6)】

也是RedisBb用来存储K-V的数据结构,当数据量比较小,或者单个元素比较小时,底层用ziplist存储,数据大小和元素数量阈值可以通过如下参数设置。hash-max-ziplist-entries 512 // ziplist 元素个数超过。编码 hash-max-ziplist-value 64 // 单个元素大小超过。zset-max-ziplist-value 64 // 单个元素大小超过。表示时,Set集合将被编码为。,当数据比较少时,用。

2026-10-16 16:26:40 88

原创 springSecurity

obtainFreshBeanFactory:完成bean工厂的创建以及配置文件的加载解析,定义的相关bean标签,解析封装到beandefinition对象中去,将所有信息封装到这个bean工厂的map容器中去。请求流转的本质 DelegatingFilterProxy、FilterChainProxy、以及对应的过滤器链。DelegatingProxyFilter拦截所有请求 由spring创建。提交账号密码之后完整的认证过程是怎样的?9001是微信,9002是csdn。

2026-09-26 23:12:05 25

原创 Seata源码【msb Seata】

简单说,TC是单独部署的Seata Server,负责全局事务的协调和决策;TM和RM则集成在业务微服务里,负责发起事务和执行分支事务。在Seata源码里,‌。

2026-09-20 23:54:18 46

原创 seata【实战 msb】

XA模式:RM执行sql,TC根据状态决定执行commit还是rooback 强一致性。AT:一阶段二阶段解耦 最终一致性。TC 分布式事务的管理者、统筹者。

2026-09-19 20:47:55 16

原创 17-常用并发设计模式精讲【TL 并发 17】

用什么方式去解决问题,一种解决方案。解决同步互斥分工stop会导致锁释放,出现线程安全问题没有达成你得目的又一直在执行就是活锁。

2026-09-18 23:11:26 199

原创 16-Future&CompletableFuture&Disruptor实战【TL 并发16 】

2026-09-17 19:55:18 128

原创 15-并发编程之ForkJoin工作原理分析【TL 并发 15】

threadpoolexecutor 中的worker实现了aqs。工作线程从工作队列取任务执行。

2026-09-17 01:03:58 19

原创 14-阻塞队列BlockingQueue实战及其原理分析二【TL 并发 14】

见一。

2026-09-16 19:20:10 194

原创 13-阻塞队列BlockingQueue实战及其原理分析【TL 并发 13】

阻塞队列的作用:均衡生产者与消费者之间的速度notEmpty是‌‌的notFull才是用来唤醒生产者的Queue: add(E),offer(E) 加,入队;element peek 查 (从队首查元素) poll remove 取元素删除阻塞队列(BlockingQueue)是一个在队列基础上又支持了两个附加操作的队列,常用解耦。两个附加操作:支持阻塞的插入方法put: 队列满时,队列会阻塞插入元素的线程,直到队列不满。

2026-09-16 02:02:10 134

原创 12-深入理解AQS之ReentrantReadWriteLock详解【TL 并发 12】

乐观锁(无锁算法):认为不会有线程来改我。悲观锁:认为一定会有线程来改我。

2026-09-15 15:14:02 61

原创 11-深入理解AQS之CyclicBarrier&ReentrantReadWriteLock详解【TL 并发 11】

CyclicBarrier基于ReentrantLock和condition 汇总 (人满发车,复用)独占锁才可以使用await/signal signalAll。独占锁是以aqs里面的state作为标记的 1 0。ReentrantLock 锁的是state。AQS 同步等待队列 基于管程思想设计。唤醒的线程加锁的时候有可能失败阻塞。MESA 条件等待队列。

2026-09-15 12:10:31 16

原创 10-深入理解AQS之Semaphorer&CountDownLatch&CyclicBarrie详解【TL 并发 10】

Semaphore 限流、信号量。死锁:如果你录取我,我就告诉你。

2026-09-14 22:15:29 30

原创 09-深入理解AQS之独占锁ReentrantLock源码分析【TL 并发 09】

竞争不够激烈使用synchronized(轻量级锁完全在用户态执行,不用阻塞线程 cas很多次阻塞线程) 竞争激烈使用ReentrantLock(只要有竞争就会阻塞线程、会有一次cas成功率低)中断:调用这个线程的中断方法,加锁的逻辑里面能对中断标记有判断,读到中断标记可以终止线程。悲观锁:很悲观别人一定会来抢我的,一定要上一把锁一定要阻塞住。可重入锁:同一个锁对象,再次进入,不会阻塞住持有锁的线程。不可中断:没有去判断这个线程是否有中断标记。乐观锁:cas 数据库版本号。

2026-09-14 18:57:04 137

原创 08-并发锁机制之深入理解synchronized(二)【TL 并发08】

见一。

2026-09-13 20:04:43 169

原创 07-并发锁机制之深入理解synchronized(一)【TL 并发07】

偏向锁解锁还是偏向锁 偏向锁撤销: 没地方存放hashcode、未锁定升级为无锁,锁定的话再次升级为轻量级锁,当前对象锁定同步代码块中调用hashcode或者调用wait方法,升级为重量级锁。synchronized使用: 方法上、代码块中都是锁对象,代码块上monitorenter、monitorexit,方法上(acc_synchronized)Mutex(互斥量),它是一个重量级锁,性能较低。轻量级锁、偏向锁操作的是对象头的markword(存在在用户态) cas不存在性能问题。

2026-09-13 15:51:06 101

原创 06-并发编程之CAS&Atomic原子操作详解【TL 并发06】

cas基于unsafe UnsafeFactory.getUnsafe() 底层提供原子操作指令保证底层是原子操作 lock前缀指令 可以保证可见性、原子性、有序性 不设计用户态到内核态切换 没有性能影响 无锁操作。synchronized会使线程阻塞,阻塞的话切换到内核态调用park方法设计用户态到内核态的转换。CAS使用场景 自增 累加 加减的一些操作 提高性能的时候考虑 无锁机制。V是需要修改的值(可能被其他线程修改),E是用来保证未被修改过的参考值。

2026-09-12 20:33:42 187

原创 05-并发编程之深入理解Java线程【TL 并发 05】

进程间通信的方式:1. 管道(pipe)及有名管道(named pipe)2. 信号(signal)3. 消息队列(message queue)4. 共享内存(shared memory)5. 信号量(semaphore)6. 套接字(socket)停止等待的方法 notify() notifyAll() LockSupport.unpark() 线程运行被中断。Thread.interrupted():判断当前线程的中断标志位是否为true,并清除中断标志。

2026-09-12 15:48:14 131

原创 04-Java并发线程池底层原理详解与源码分析【TL 并发04】

add方法不会返回false比offer方法多一个异常,会抛出异常 offer方法可以返回false。submit方法底层调用了execute方法。

2026-09-11 01:34:18 24

原创 03-并发List、Set、 ConcurrentHashMap底层原理剖析【TL 并发 03】

synchronized 悲观锁 发生线程上下文切换 线程状态会改变(针对链表头节点上锁)cas 乐观锁 不会发生线程上下文切换 线程状态不会改变。jdk7头插法在并发操作不当的情况下会发生死循环。

2026-09-10 22:34:39 144

原创 02-并发编程之深入理解JMM&并发三大特性(二)【TL jvm 02】

3、缓存一致性协议,确保原子操作可以在缓存的数据结构上执行(缓存锁);不能保证缓存一致性的情况:缓存一致性协议失效。使用lock前缀指令才能让缓存一致性协议生效、让缓存一致性协议失效。跨总线宽度、跨多个缓存行、跨页表没法保证原子性,因为是有多个请求。总线锁定(处理器独占共享内存)、缓存锁定两种方式解决上述问题。3、对象指向内存空间的地址 2、3可互换 临界区的重排序。2、总线锁定,使用LOCK#信号和LOCK指令前缀。2、早期处理器没有实现缓存一致性协议。1、有保证的原子操作。

2026-09-10 19:33:38 201

原创 垃圾收集器G1&ZGC详解【TL jvm 06】

初始标记(STW) -> 并发标记 ->最终标记(STW) -> 筛选回收(STW)G1收集算法 复制算法 从整体上看类似于标记整理。kafka每秒处理量百万级别。

2026-09-03 00:15:24 28

原创 【TL jvm 05】

serial、parallel、parnew 新生代复制算法、老年代标记整理 -xx:+User**GC。jdk1.8版本默认的新生代老年代版本是Parallel Scavenge和Parallel Old。-XX:UseConcMarkSweepGC:启用cms。CMS老年代使用的垃圾收集器。CMS老年代使用标记清楚算法。

2026-09-02 20:40:58 16

原创 JVM对象创建与内存分配机制深度剖析【TL jvm03】

XX: PretenureSizeThreshold=10000 -XX:+UseSerialGC这个参数只在Serial和ParNew两个收集器下有效。jvm内部用的是对象头里面的类型指针klass pointer c++实现的。-XX:MaxTenuringThreshold设置岁数分代年龄。CMS默认6岁新生代对象进入老年代。老年代空间分配担保机制。

2026-08-31 12:43:25 229

原创 JVM内存模型深度剖析与优化【TL jvm 02】

内存大小分配: -Xms -Xmx堆的大小 -Xmn新生代大小 -XX:MetaspaceSize 元空间的初始大小-XX:MaxMetaspaceSize元空间的最大大小(使用直接内存 默认大小21M 触发full gc) 栈的大小 -Xss 512k。gcroot根节点:线程栈的本地变量、静态变量、本地方法栈的变量。一次gc,对象头分代年龄+1 15后被放入到老年代。年轻代分Eden、S0、S1 = 8:1:1。堆中,年轻代占比1/3,老年代占比2/3。

2026-08-31 06:12:13 173

原创 从JDK源码级别彻底剖析JVM类加载机制【TL jvm01】

11111111111111111111

2026-08-31 03:35:05 17

原创 MVCC机制【TL mysql7】

undolog和 read-view视图由执行查询时所有未提交事务id数组(数组里最小的id为min_id)和已创建的最大事务id(max_id)组成。顺序io比随机io快 2到3个数量级。mysql锁加在索引上或者加在表上。undolog日志是用来回滚的。写redo日志文件是顺序io。

2026-08-30 18:03:42 36

原创 数据库事务【TL mysql6】

临键锁(Next-key Locks) = 行锁 + 间隙锁。锁是用来解决多个进程、多个线程并发访问某一资源的机制。无索引的行锁可能升级为表锁。innodb支持行级锁。Innodb支持事务。持久性Durable。

2026-08-30 10:52:50 56

原创 Mysql索引优化实战2【TL mysql5】

左连接、右连接:关联字段尽可能的(大表)走索引 尽可能小表驱动大表 straight join。

2026-08-29 21:02:13 45

原创 Mysql索引优化实战1【TL mysql4】

name > 'lilei' 大于号没有使用索引下推。name like 'lilei%' 使用索引下推。5、where与order by冲突时优先where。2、联合索引尽量覆盖条件 满足最左前缀原则。建索引:1、sql 2、业务场景。索引树上排序比在文件磁盘上排序快。4、长字符串我们可以采用前缀索引。3、不要在小基数字段建立索引。6、基于慢sql查询做优化。1、代码先行,索引后上。

2026-08-29 16:15:12 144

原创 【TL mysql 3】

my.cnf query_cache_type 0关闭 1 开启 2 demand 按需使用 sql cache。查询缓存: 使用在配置表、字典表、树形菜单、权限结构、region。(8以后的版本没了5.7版本还有)执行器:调用引擎接口,获取执行结果。优化器:生成执行计划、索引选择。分析器:antlr4。

2026-08-28 22:43:25 217

原创 Explain详解与索引最佳实践【TL MySQL2】

type:null system > const > eq_ref > ref > range > index > all(访问类型)varchar(n)如果是utf-8,则长度是3n+2,加的2字节用来存储字符串长度。system是const的特例,表里只有一条元组匹配时为system。index:优先二级索引 二级索引小 主键索引含有所有数据。

2026-08-28 19:31:17 216

原创 深入理解mysql索引底层数据结构与算法【TL mysql 1】

非叶子节点不存储数据,只存储索引(冗余),可以放更多索引。叶子节点具有相同的深度,叶节点的指针为空。叶子节点用指针连接,提高区间访问性能。节点的数据索引从左到右递增排列。高度3 2000多万数据。叶子节点包含所有索引字段。

2026-08-28 14:02:59 178

原创 Sentinel【TL微服务10、11】

流量控制 流控规则 原理是监控应用流量的QPS(RT响应时间)或并发线程数等指标。@SentinelResource注解使用aop完成切入。想到aop 想到invocationHandler。

2026-08-27 13:58:44 114

原创 ajax的使用、json、jquery

json其实就是一种字符串格式,可以用一种特殊格式的字符串表示对象。跨域:dataType:“jsonp”

2026-08-25 02:32:11 285

原创 redis缓存数据库进阶

Redisson。

2026-08-23 21:58:49 27

原创 redis实战运用与架构设计【2026金三银四redis2】

缓存穿透:布隆过滤器(缺点:删除布隆过滤器麻烦)、回种空值缓存击穿(热点key):1、永不过期2、加入互斥锁(解决缓存更新并发问题)缓存雪崩:高可用(主从、哨兵、集群)、限流+降级、分散缓存失效时间、随机失效时间。

2026-08-23 18:56:29 158

原创 springcloud alibaba 注册中心源码剖析 nacos【TL 微服务6、7】

nacos核心功能点:服务注册、服务心跳、服务健康检查、服务发现、服务同步。服务端 naming controller。nacos的web服务提供http接口。

2026-08-20 20:05:52 90

原创 redis【2026金三银四redis上】

1、定位一个数据库一个数据结构2、单机和分布式3、支持的各种数据类型上面。

2026-08-18 13:17:06 180

原创 spring之事务底层源码解析【TL spring15】

abstractPlatformTransactionManagerTransactionInterceptor强制回滚:

2026-08-18 00:58:31 24

技术人的学习成长资源地图(1).pdf

技术人学习成长资源地址

2021-09-16

空空如也

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

TA关注的人

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