摘要:
1. 概念理解 1.1. 并行(Parallel)与并发(Concurrent) 并行:指多个垃圾收集线程并行工作,但此时用户线程仍然处于等待状态 并发:指用户线程与垃圾收集线程同时执行 1.2. Minor GC 与 Major GC Minor GC:指发生在新生代的垃圾收集动作,因为Java对 阅读全文
摘要:
1. Java虚拟机运行时数据区 在JDK1.8之前,JVM运行时数据区分为堆、虚拟机栈、本地方法栈、方法区、程序计数器。如下图所示: 虚拟机栈:线程私有,随线程创建而创建。栈里面是一个一个“栈帧”,每个栈帧对应一次方法调用。栈帧中存放了局部变量表(基本数据类型变量和对象引用)、操作数栈、方法出口等 阅读全文
摘要:
秒杀商品页面静态化 阅读全文
摘要:
本质上来说,分布式事务就是为了保证不同数据库的数据一致性。 1. 分布式理论 1.1. CAP定律 CAP指的是:一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。 CAP定律说的是,在一个分布式系统中,最多只能满足C、A、P 阅读全文
摘要:
1. 基本用法 针对上面这段代码,重点看一下Redisson是如何基于Redis实现分布式锁的 Redisson中提供的加锁的方法有很多,但大致类似,此处只看lock()方法 更多请参见 https://github.com/redisson/redisson/wiki/8.-distributed 阅读全文
摘要:
1. wait / notify 要想执行 wait() / notify() / notifyAll() 这些方法,必须首先获得对象的监视器 换言之,这些方法必须在 synchronized 中执行 2. Condition 3. wait() Causes the current thread 阅读全文
摘要:
1. ThreadLocal是什么 ThreadLocal提供线程局部变量。这些变量与普通的变量不同之处在于,每个访问这种变量的线程(通过它的get或set方法)都有自己的、独立初始化的变量副本。 ThreadLocal实例通常是希望将状态关联到一个线程的类的私有静态字段(比如,user ID 或者 阅读全文
摘要:
1. 前言 1.1. 集成方式 Spring Boot中集成Elasticsearch有4种方式: 本文用后面两种方式来分别连接并操作Elasticsearch 1.2. 环境与配置 服务端:elasticsearch-6.3.2 1台 客户端:elasticsearch 6.4.1 服务端配置文件 阅读全文
摘要:
1. 引言 读写分离要做的事情就是对于一条SQL该选择哪个数据库去执行,至于谁来做选择数据库这件事儿,无非两个,要么中间件帮我们做,要么程序自己做。因此,一般来讲,读写分离有两种实现方式。第一种是依靠中间件(比如:MyCat),也就是说应用程序连接到中间件,中间件帮我们做SQL分离;第二种是应用程序 阅读全文
摘要:
1. 环境 操作系统:CentOS-7 MySQL:mysql-5.6 一台虚拟机又克隆了两台 192.168.102.31 master 192.168.102.56 slave 192.168.102.36 slave 启动/停止 2. 主数据库配置 第1步:编辑/etc/my.cnf文件,在[ 阅读全文