- 博客(106)
- 收藏
- 关注
原创 es-索引详解
在 Elasticsearch 中,**索引(Index)**是核心概念之一,类似于关系型数据库中的“表”。索引用于存储、组织和检索文档(Document)。
2025-03-09 20:56:38
822
原创 redis-redission的加锁源码与看门狗机制
时间内未被显式释放,Redisson会自动释放该锁。作用:用于标识当前线程,以便Redisson能够跟踪锁的持有者。,表示在尝试获取锁的过程中,线程不会响应中断,即使被中断也会继续尝试获取锁。作用:指定当前线程尝试获取锁的最大等待时间。,表示在尝试获取锁的过程中,如果当前线程被中断(调用了。如果锁未被获取,返回值为锁的剩余过期时间(单位为毫秒)含义:锁的持有时间,即锁的自动释放时间。的时间单位,确保锁的持有时间被正确解析。作用:指定锁的自动释放时间。含义:尝试获取锁的最大等待时间。
2025-01-20 12:06:18
548
原创 Thread-构造函数,属性详解
如:main线程启动的 ThreadGroup 是main, main中启动的线程的 ThreadGroup 默认也是main。daemon线程会一致存在,直到所有的普通线程终止,然后daemon线程才会终止,进而jvm线程终止。意义:线程组,默认使用 parent所在的线程组( parent:创建当前线程的线程)潜在问题:如果是短期的辅助任务,不应该使用daemon线程,因为该线程无法被终止。问题: 有多个daemon线程,部分任务线程终结,daemon线程怎么变化。该线程组中活着的线程数量。
2023-12-24 17:39:33
482
原创 rocketMQ介绍
每个broker对应一个文件,存储数据?还是会根据topic分开放置?每个broker都有从节点,便于做故障转移。支持幂等性过滤重复消息。
2023-12-06 18:48:39
493
原创 JUC-CountDownLatch
允许一条或多条线程等待其他线程中一组操作完成后,再继续执行收集龙珠,召唤神龙:委派7个人同时收集,主人一直等待,直到7个人完成后,主人再继续召唤神龙。
2023-12-04 16:01:10
440
原创 JUC-ReentrantLock
基于AQS,在并发编程中实现公平锁、非公平锁对共享资源进行同步,同时,和synchorized一样支持重入,除此之外,调度上更加灵活。加锁,一直等待,直到获取成功(假如当前线程在等待锁时被中断,则退出等待,抛出中断异常)在一段时间内获取锁(假如当前线程在等待锁时被中断,则退出等待,抛出中断异常)新建一个绑定在当前对象上的condition对象。唯一的变量 Sync,一旦被指定,后期无法修改。ReentrantLock 实现Lock接口。加锁,一直等待,直到获取成功。尝试获取锁,并立即返回。
2023-12-03 22:39:37
865
原创 synchorized的原理、锁升级
synchorized的原理、锁升级1. 原理1.1 class字节码1.2 jvm层面1.3 硬件2. 锁升级1. 原理1.1 class字节码ACC_SYNCHORIZED1.2 jvm层面C C++调用了操作系统的同步机制1.3 硬件lock comxchg XXXX2. 锁升级参考文章:Synchronized升级过程总结...
2021-08-11 22:10:26
241
原创 volatile的作用与原理
volatile的作用与原理1. 作用1.1 内存屏障1.2 内存可见性2. 原理2.1 怎么实现内存屏障2.1.1 class字节码2.1.2JVM层面2.1.3硬件层面3. 为什么出现内存屏障4. 怎么保证缓存一致性4.1 JVM层面4.2 硬件层面1. 作用1.1 内存屏障1.2 内存可见性2. 原理2.1 怎么实现内存屏障2.1.1 class字节码ACC_VOLATILE2.1.2JVM层面1)StareStoreBarriervolatile写StoreLoadBarri
2021-08-11 22:06:03
296
原创 系统设计优化
1. eureka优化服务少的时候,开启自我保护机制。避免由于“网络抖动”,造成服务下线(更改阈值,可以变更自我保护的触发容许下线个数)2. 提升QPS异步执行减少IO(网络IO、磁盘IO)代码编写使用更加高效的策略拦截无效访问服务无状态,便于横向扩展2.1 场景异步发送钉钉消息、短信消息;异步上传头像到闸机,成功与否采取后续消息通知方式消息模板放入项目内存(不是redis)消息模板不轻易改变,而且占用内存小如果放入redis,读取的时候还要"建立连接",网络IO有消耗
2021-05-28 11:03:09
218
原创 wait与notify/notifyAll
相同点都会使当前线程阻塞,让出cpu执行权不同点sleep是线程中的方法,但是wait是Object中的方法sleep方法不会释放lock,但是wait会释放,而且会加入到等待队列中sleep方法不依赖于同步器synchronized,但是wait需要依赖synchronized关键字sleep不需要被唤醒(休眠之后推出阻塞),但是wait需要(不指定时间需要被别人中断)sleep使用时间概念,到时自动进入Runnable; wait要将当前线程放入到“监视器的等待队列”中,依赖于同步
2021-05-27 17:52:43
145
原创 mysql慢sql定位与explain分析
1. 开启慢SQL日志1.1 查看慢查询日志是否打开show variables like ‘%slow_query_log’;1.2 开启慢SQLset global slow_query_log=‘ON’2. 慢日志阈值时间2.1 查看慢日志阈值时间show variables like ‘%long_query_time%’; 默认10秒2.2 设置慢查询时间set global long_query_time = 3;sql执行时间大于3s的将会写到
2021-05-26 19:45:14
222
原创 mysql事务
事务的四大特性原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚一致性(Consistency) 事务执行之前和执行之后都必须处于一致性状态。隔离性(Isolation) 隔离性是当多个用户并发访问数据库时,多个并发事务之间要相互隔离。持久性(Durability) 持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的...
2021-05-26 17:42:18
139
原创 mysql的并发问题、隔离级别
1. 并发问题脏读(A事务读取到了B事务未提交数据)不可重复读(A事务读取,B事务更修改,A再读取时,数据发生修改,,针对“修改”)幻读(A事务读取,B事务增删,A事务再次读取,数据条目发生变化,,针对"增删")2.0 隔离级别读未提交读已提交可重复读串行化mysql默认级别“可重复读”(会出现“幻读”)参考四种事物隔离级别详解MySQL事务隔离级别的实现原理-MVCC...
2021-05-26 15:32:13
128
原创 mysql的innoDB索引
1. 索引分类B-Tree 索引哈希索引全文索引1.1 B-Tree 索引的分类聚簇索引唯一索引组合索引2. B-Tree 索引原理2.1 聚簇索引2.2 普通索引(3个字段为例)3. 索引失效not inlike %在前不符合最左原则范围查找之后,后面的条件都不会使用索引4. 注意点4.1 聚簇索引个数mysql中只有1个聚簇索引(有主键则为主键,没有主键则使用唯一索引,都没有,则隐式创建一个唯一索引)4.2 not in能否使用索引not in也
2021-05-26 14:42:04
198
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人