摘要: [TOC] Tomcat支持三种接收请求的处理方式:BIO、NIO、APR。 本文分析的是NIO,也就是tomcat8版本的默认模式。 什么是APR? BIO:同步阻塞 NIO:同步非阻塞 APR:异步非阻塞 版本:tomcat8 Lifecycle Lifecycle是生命周期接口 Lifecyc 阅读全文
posted @ 2020-03-29 22:07 平淡454 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 服务端 主题包含多个分区(分区之间数据是分片的),分区包含一个分区首领、多个分区副本(他们之间数据是同步的),每个副本或者首领的数据存储在一个broker上(每个broker就是集群的一个节点) 副本分同步副本和非同步副本,当一个副本6秒内还没向zk汇报自己存活或者10秒内没有从首领副本同步数据,就 阅读全文
posted @ 2020-03-29 22:01 平淡454 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 1、zookeeper的集群数量为什么是奇数? zk写操作,主向从同步的时候要超过半数成功才算成功。 如果集群有3台服务器,挂掉一台,还剩两台,可以继续写成功。 集群有4台服务器,最多也是只允许挂掉一台,如果挂掉两台,剩下的等于半数(没超过半数),写就会失败。即3、4台都只允许挂掉1台。 2、什么是 阅读全文
posted @ 2020-03-29 21:52 平淡454 阅读(301) 评论(0) 推荐(0) 编辑
摘要: acid 索引 锁 事物隔离级别 LBCC与MVCC explain prepareStatement和statement mysql存储引擎 mysql插入大量数据 索引 应用层面来说索引包括全文索引、哈希索引、btree索引、rtree索引 全文索引底层是通过分词实现的,不建议使用。 rtree 阅读全文
posted @ 2020-03-29 14:55 平淡454 阅读(118) 评论(0) 推荐(0) 编辑
摘要: ThreadPoolExecutor public class ThreadPoolExecutor extends AbstractExecutorService { //低29位表示线程池的数量,高3位表示线程池状态 private final AtomicInteger ctl = new A 阅读全文
posted @ 2020-03-28 19:50 平淡454 阅读(328) 评论(0) 推荐(0) 编辑
摘要: "CopyOnWriteArrayList" "ConcurrentHashMap" "ArrayBlockingQueue" CopyOnWriteArrayList 构造器有两种:无参和有参 添加方法: get方法直接按照索引查询数组即可。 "返回顶部" 阅读全文
posted @ 2020-03-28 15:41 平淡454 阅读(113) 评论(0) 推荐(0) 编辑
摘要: CountDownLatch闭锁 CyclicBarrier栅栏 Semaphore信号量 阅读全文
posted @ 2020-03-28 14:37 平淡454 阅读(79) 评论(0) 推荐(0) 编辑
摘要: AQS ReentrantLock ReentrantReadWriteLock AQS 全名叫AbstractQueuedSynchronizer。 public abstract class AbstractQueuedSynchronizer extends AbstractOwnableSy 阅读全文
posted @ 2020-03-28 14:33 平淡454 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 1. 基本类型: "AtomicInteger" , AtomicLong, AtomicBoolean ; 2. 数组类型: AtomicIntegerArray, AtomicLongArray, AtomicReferenceArray ; 3. 引用类型: AtomicReference, 阅读全文
posted @ 2020-03-28 11:27 平淡454 阅读(110) 评论(0) 推荐(0) 编辑
摘要: Synchronize实现原理 java对象头中存在一个指向monitor对象的指针。每个java对象在内存中都对应一个monitor对象。monitor对象就是用来存放对象的锁信息的。 monitor对象重要属性: count:用来存放当前对象被获取锁的次数,0表示对象没有被线程占有。 owner 阅读全文
posted @ 2020-03-28 10:12 平淡454 阅读(518) 评论(0) 推荐(0) 编辑