摘要:
LUR算法介绍 LRU(Least Recently Used),最近最少使用算法,从名字上可能不太好理解,我是这样记的:LRU算法,淘汰最近一段时间内,最久没有使用过的数据。 详细的介绍可以参考百度百科:https://baike.baidu.com/item/LRU 实现LUR的原理 本文使用H 阅读全文
摘要:
线程池隔离 一个服务有多个接口,在提供服务时,使用了线程池,多个接口共用这一个线程池,如下图所示: 那么当某个接口处理效率缓慢,当对该接口的请求量上升时,由于该接口处理效率慢,对于该接口的请求就会占用公用的连接池,并且如果长时间没有释放连接,就会造成其他接口没有线程池来处理请求,于是就会出现因为一个 阅读全文
摘要:
目录 一.基于权重的随机负载均衡策略 二.基于轮询的负载均衡策略 三.基于权重的轮询负载均衡策略 四.基于最少活跃数的轮询负载均衡策略 五.基于一致性hash的负载均衡策略 一.基于权重的随机负载均衡策略 有3台机器,每台机器都有各自的权重,如下如所示: 现在假设用户发起1次调用,请求被Server 阅读全文
摘要:
平常开发过程中,如果涉及到RPC调用,对于服务调用方和服务提供方,都是可以设置接口超时时间的。以调用方为例,调用方需要调用远程的一个接口,为了保证服务的质量,一般会设置调用接口的超时时间,比如将调用接口的超时时间设置为1秒,当调用远程接口后,经过1秒还未拿到结果,那么就认为是超时了,调用方就不会继续 阅读全文
摘要:
一.xml方式配置bean 二.Aware接口 2.1 BeanNameAware 2.2 BeanFactoryAware 2.3 ApplicationContextAware 2.4 Aware各接口的执行顺序 2.4 Aware接口总结 三.BeanPostProcessor接口 四.Ini 阅读全文
摘要:
目录 一.ConcurrentHashMap的模型图 二.源码分析-类定义 2.1 极简ConcurrentHashMap定义 2.2 Segment内部类 2.3 HashEntry内部类 2.4 ConcurrentHashMap的重要常量 三.常用接口源码分析 3.1 ConcurrentHa 阅读全文
摘要:
一.ReentrantLock介绍 1.1介绍 ReentrantLock,可重入锁,首先是一个锁,独占锁,可重入(也就是当前线程获取锁后,还可以再次获取该锁); 1.2API介绍 ReentrantLock有多个接口,这也是相对于synchronized的一个优势吧,可以灵活地对锁进行控制,而不用 阅读全文
摘要:
一.线程状态流转图 Java的线程可以有多种状态,在Thread.State类中定义了6个常量来表示线程的状态,分别是NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED,下面是比较详细的一幅状态流转图: 二.示例代码 2.1 sleep 先看下 阅读全文
摘要:
目录 一.介绍 二.问题提出 2.1内存原理图 2.2几个问题 三.回答问题 3.1为什么会出现内存泄漏 3.2若Entry使用弱引用 3.3弱引用配合自动回收 四.总结 一.介绍 之前使用ThreadLocal的时候,就听过ThreadLocal怎么怎么的可能会出现内存泄漏,具体原因也没去深究,就 阅读全文
摘要:
目录 一.ThreadLocal介绍 1.1 ThreadLocal的功能 1.2 ThreadLocal使用示例 二.源码分析-ThreadLocal 2.1 ThreadLocal的类层级关系 2.2 ThreadLocal的属性字段 2.3 创建ThreadLocal对象 2.4 Thread 阅读全文