10 2021 档案

摘要:MySQL MySQL的本地事务、全局事务、分布式事务 MySQL高性能索引策略和查询性能优化 MySQL高可用架构-MMM、MHA、MGR、分库分表 Redis Redis的持久化机制 Redis新旧复制 Redis高可用解决方案:哨兵(Sentinel) Redis分布式方案:集群 Redis多 阅读全文
posted @ 2021-10-28 15:35 csgopher 阅读(105) 评论(0) 推荐(0)
摘要:结构演进 早起JDK版本中,ThreadLocal内部结构是一个Map,线程为key,线程在“线程本地变量”中绑定的值为Value。每一个ThreadLocal实例拥有一个Map实例。(Key是线程,Value是值) JDK8中,ThreadLocal内部结构发生了演进,虽然还是Map,但是拥有者变 阅读全文
posted @ 2021-10-24 15:12 csgopher 阅读(355) 评论(2) 推荐(0)
摘要:类图概述 由类图可以看出,L是单向链表实现的,有两个ReentrantLock实例用来控制元素入队和出队的原子性,takeLock用来控制只有一个线程可以从队头获取元素,putLock控制只有一个线程可以从队尾添加元素。notEmpty和notFull是条件变量,内部有条件队列用来存放进队和出队被阻 阅读全文
posted @ 2021-10-24 13:37 csgopher 阅读(142) 评论(0) 推荐(0)
摘要:为什么听众无法理解你的演讲 文斯视察工厂时,指着一台生产设备问:有没有这个设备的清洁记录? 工厂负责人赶紧解释:我和你说,事情是这样的,我们工厂内部的清洁流程是这样的...(省略一百字介绍)。 解释了很多,但就是没有正面回答问题。 文斯开了个玩笑,说:一个有或没有的问题,他们至少需要十分钟才能告诉我 阅读全文
posted @ 2021-10-23 16:44 csgopher 阅读(197) 评论(0) 推荐(0)
摘要:AQS简述 AQS是一个FIFO的双向队列,队列元素类型为Node(也就是Thread)。AQS有一个state属性,ReentrantLock可以用来便是当前线程获取锁的可重入次数;对于samaphore来说,state表示当前可用信号的个数;对于CountDownLatch,state表示计数器 阅读全文
posted @ 2021-10-20 23:02 csgopher 阅读(218) 评论(0) 推荐(0)
摘要:JUC的线程池架构 1.Executor Executor是Java异步任务的执行者接口,目标是执行目标任务。Executor作为执行者角色,目的是提供一种将“任务提交者”与“任务执行者”分离的机制。它只有一个函数式方法: public interface Executor { void execu 阅读全文
posted @ 2021-10-17 19:10 csgopher 阅读(360) 评论(0) 推荐(0)
摘要:线程的启动和运行 方法一:使用start()方法:用来启动一个线程,当调用start方法后,JVM会开启一个新线程执行用户定义的线程代码逻辑。 方法二:使用run()方法:作为线程代码逻辑的入口方法。run方法不是由用户程序来调用的,当调用start方法启动一个线程之后,只要线程获得了CPU执行时间 阅读全文
posted @ 2021-10-16 18:06 csgopher 阅读(425) 评论(0) 推荐(0)
摘要:幂等性是什么? 一次接口调用和多次接口调用都能得到与预期相符的结果。 怎么解决? 传统方法:代码增加前置判断,但是这样工作量太大了。 我们需要一种无侵入的幂等解决方案。 构建幂等表示通用的解决方案 幂等表设计 每次在请求头部放一个RequestId(保证唯一的),通过网关检查RequestId,幂等 阅读全文
posted @ 2021-10-08 23:22 csgopher 阅读(364) 评论(0) 推荐(0)
摘要:CMS收集器的特点:追求最短的停顿时间。 CMS-Concurrent Mark Sweep 并发 标记 清除 标记垃圾的方式 标记清除:标记处需要回收的对象,标记完成后统一回收所有被标记的对象。 标记复制:将内存分为两块, 每次用一块。当一块内存用完时,将活着的对象复制到另一块上。 标记整理:让存 阅读全文
posted @ 2021-10-07 22:11 csgopher 阅读(281) 评论(0) 推荐(0)
摘要:缓存穿透 缓存的目的是为了缓解 CPU 或者 I/O 的压力,譬如对数据库做缓存,大部分流量都从缓存中直接返回,只有缓存未能命中的数据请求才会流到数据库中,这样数据库压力自然就减小了。 如果查询的数据在数据库中根本不存在的话,缓存里自然也不会有, 这类请求的流量每次都不会命中,这种查询不存在数据的现 阅读全文
posted @ 2021-10-07 18:59 csgopher 阅读(604) 评论(0) 推荐(0)
摘要:‌介绍 一阶段:事务协调者通知每一个服务处理本地事务,每个服务开始处理但是不会提交事务,处理完毕后告知协调者。 二阶段:协调者收到所有服务的消息后通知他们提交事务。 ‌重要角色 事务管理器(TM),决定什么时候全局提交or回滚。(司令官) 事务协调者(TC),负责通知命令的中间件seata-serv 阅读全文
posted @ 2021-10-04 21:11 csgopher 阅读(592) 评论(0) 推荐(0)
摘要:总结 MMM是是Perl语言开发的用于管理MySQL主主同步架构的工具包。主要作用:管理MySQL的主主复制拓扑,在主服务器失效时,进行主备切换和故障转移。 MMM缺点:故障切换可能会丢事务(主备使用半同步复制解决)。不支持GTID。社区不活跃。MMM无法完全的保证数据一致性,所以适用于对数据的一致 阅读全文
posted @ 2021-10-02 23:29 csgopher 阅读(2865) 评论(0) 推荐(0)
摘要:前缀索引和索引选择性 有时候需要索引很长的字符,这会让索引变得大且慢。一个策略是模拟哈希索引。 通常可以索引开始的部分字符,这样可以大大解约索引空间,提高索引效率。但这样会降低索引的选择性。 索引的选择性:不重复的索引值(也成为基数)和数据表的记录总数比值。索引的选择性越高则查询效率越高,因为选择性 阅读全文
posted @ 2021-10-02 00:13 csgopher 阅读(332) 评论(0) 推荐(0)