摘要:
HashSet 实现了 Set 接口,由哈希表(实际是 HashMap)提供支持。HashSet 不保证集合的迭代顺序,但允许插入 null 值。也就是说 HashSet 不能保证元素插入顺序和迭代顺序相同。HashSet 具备去重的特性,也就是说它可以将集合中的重复元素自动过滤掉,保证存储在 Ha 阅读全文
摘要:
目录 什么是MVCC Mysql的锁和事务隔离级别 Mysql的undo log MVCC的实现原理 什么是MVCC MVCC,全称Multi-Version Concurrency Control,即多版本并发控制。MVCC是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编 阅读全文
摘要:
ThreadLocal是线程Thread中属性threadLocals即ThreadLocal.ThreadLocalMap的管理者,ThreadLocal用于给每个线程操作自己线程的本地变量,通过线程私有从而保证线程安全性。 ThreadLocal原理 拿get()方法来说,线程的本地变量是存放在 阅读全文
摘要:
前言 微服务治理方案中,链路追踪是必修课,SpringCloud的组件其实使用很简单,生产环境中真正令人头疼的往往是软件维护,接口在微服务间的调用究竟哪个环节出现了问题,哪个环节耗时较长,这都是项目上线后一定会遇到的问题,为了解决这些问题链路追踪便应运而生了。 主流方案 1)、SkyWalking: 阅读全文
摘要:
大家好。我们都知道,Spring可以通过三级缓存解决循环依赖的问题,这也是面试中很常见的一个面试题,本文就来着重讨论一下有关循环依赖和三级缓存的问题。 一、什么是循环依赖 大家平时在写业务的时候应该写过这样的代码。 其实这种类型就是循环依赖,就是AService 和BService两个类相互引用。 阅读全文
摘要:
所谓的大事务就是耗时比较长的事务。 Spring有两种方式实现事务,分别是编程式和声明式两种。 不手动开启事务,mysql 默认自动提交事务,一条语句执行完自动提交。 一、大事务产生的原因 操作的数据比较多 调用了 rpc 方法 有其他非 DB 的耗时操作 大量的锁竞争 执行了比较耗时的计算 二、大 阅读全文
摘要:
背景现象 1.20晚上8点业务线开始切换LBS相关流量,在之后的1个小时时间内,积压量呈上升趋势,一路到达50W左右,第二天的图没贴出具体是50W数字,以下是第一天晚上的贴图部分。 现象一: 现象二: 当时现场图后来就找不回来了,凭印象说明了一下数字。 简要说明一下上述两个图 图一:其实很明显,明显 阅读全文
摘要:
当服务器压力剧增的情况下,根据实际业务情况及流量,对一些服务和页面有策略的不处理或换种简单的方式处理,从而释放服务器资源以保证核心交易正常运作或高效运作; 1. 服务容灾基础知识 1.1 由一个服务资源耗尽引发的连锁反应 A 服务调用 B 服务,B 服务调用 C 服务; 当 C 服务出现调用缓慢问题 阅读全文