总结沉淀

总结日常点滴积累

【JDK1.8源码阅读】ThreadPoolExecutor线程池源码实现分析整理(九)

文章目录线程池优点线程池基础组成部分ThreadPoolExecutor基本定义线程池状态变量ctl线程池核心参数工作队列workQueueThreadFactory线程创建工厂5)RejectedExecutionHandler(饱和策略)线程池运行监控常见实例核心运行流程execute 执行任...

2019-02-16 13:52:29

阅读数 11

评论数 0

【JDK1.8源码阅读】ReentrantReadWriteLock源码实现分析整理(八)

ReentrantReadWriteLock基本原理分析 像ReentrantLock实现的是一个排他锁,即若有一个线程获取锁,其他线程都不能再次获取。而ReentrantReadWriteLock提供了一种共享锁策略,即如果有线程获取的是共享锁,则其他线程可以继续获取共享锁,但不能获取排他锁;而...

2019-02-16 13:52:03

阅读数 8

评论数 0

【JDK1.8源码阅读】ConditionObject相关源码实现分析整理(七)

Condition接口定义 Condition将 Object 监视器方法(wait、notify 和 notifyAll)分解成截然不同的对象,以便通过将这些对象与任意 Lock 实现组合使用,为每个对象提供多个等待 set (wait-set)。其中,Lock 替代了 synchronized...

2019-02-16 13:51:40

阅读数 8

评论数 0

【JDK1.8源码阅读】ReentrantLock源码实现分析整理(六)

重入锁ReentrantLock实现了Lock接口,即实现了加解锁操作的基本API,在此基础上,ReentrantLock提供以下特性: 支持同一线程对资源的重复加锁,即同一线程重复调用lock方法不会堵塞,但后续解锁次数需要和加锁次数同步,才能真正意义地释放锁。 支持获取锁时的公平和非公平性选...

2019-02-16 13:51:18

阅读数 33

评论数 0

【JDK1.8源码阅读】 AbstractQueuedSynchronizer队列同步器应用和实现深度解析(五)

文章目录AQS实现原理AQS实现细节分析同步队列实现独占式同步状态获取与释放acquire 堵塞获取独占式同步状态addWaiter 将节点加入到同步队列尾部acquireQueued堵塞尝试获取同步状态acquireInterruptibly 可被打断独占式获取同步状态tryAcquireNan...

2019-02-16 13:50:52

阅读数 67

评论数 0

【JDK1.8源码阅读】 JUC锁基础源码实现分析整理(四)

JUC(java.util.concurrent)下定义了JDK关于锁相关的框架。整体锁框架可参照参考文章的一张图: 对其中每个工具类介绍如下: Lock Lock为接口类型,Lock实现提供了比使用synchronized方法和语句可获得的更广泛的锁定操作。此实现允许更灵活的结构,可以具有差别...

2019-02-16 13:50:29

阅读数 35

评论数 0

【JDK1.8源码阅读】 ArrayList源码实现分析整理(三)

文章目录ArrayList基本实现原理基本定义核心操作add添加数组元素实现其他核心操作实现参考 ArrayList基本实现原理 ArrayList底层数据结构是一个数组,元素根据插入顺序排列,支持随机访问,添加删除元素的时间复杂度是O(n),访问元素是O(1)。 在每次添加元素时,会先确保容量足...

2019-02-16 13:50:04

阅读数 18

评论数 0

【JDK1.8源码阅读】 LinkHashMap源码实现分析整理(二)

文章目录LinkHashMap数据结构分析类定义linkNodeLast 插入双链表尾部afterNodeAccess 节点访问回调,设为尾节点回调时机用途原理分析afterNodeRemoval 节点移除回调afterNodeInsertion 节点插入回调entrySet 遍历元素参考 Lin...

2019-02-16 13:49:38

阅读数 16

评论数 0

【JDK1.8源码阅读】 HashMap源码实现分析整理(一)

文章目录HashMap数据结构概括元素属性构造函数、容量算法和哈希碰撞优化put插入或更新Map元素putVal实现resize获取或调整Map容量迁移算法实现原理:链表树化、红黑树链化与拆分红黑树特性treeifyBin树化putTreeVal 插入红黑树元素split 红黑树拆分untreei...

2019-02-16 13:48:33

阅读数 54

评论数 0

【Pigeon源码阅读】高可用之熔断降级实现原理(十四)

pigeon熔断降级 当服务调用在短时间内出现大量的失败且失败率超过一定阀值时,可以通过配置手动或自动触发降级,调用端直接返回默认对象或抛出异常,不会将调用请求发到服务提供方,如果服务提供方恢复可用,客户端可以自动或手工解除降级。 pigeon降级开关 pigeon提供三种降级开关,来分别支持不同...

2019-02-06 10:22:51

阅读数 70

评论数 0

【Pigeon源码阅读】高可用之故障注入实现原理(十三)

故障注入 pigeon提供故障注入功能来模拟在调用出现异常时的处理测试,由客户端拦截器FaultInjectionFilter完成,具体有两种故障注入方式,分别为: EXCEPTION:抛出注入异常FaultInjectionException 超时:尝试模拟请求特定时长,然后抛出Request...

2019-02-06 10:22:48

阅读数 44

评论数 0

【Pigeon源码阅读】高可用之服务限流实现原理(十二)

pigeon服务限流 pigeon支持4个纬度的限流策略,当客户端请求达到服务端统计的限流阈值时,会抛出RejectedException。具体限流策略包括: 应用限流:限制某个客户端应用的最大QPS 应用方法限流:限制某个客户端应用访问某个服务方法的最大QPS 单机总限流:限制服务端单机的最大...

2019-02-06 10:22:45

阅读数 49

评论数 0

【Pigeon源码阅读】客户端负载均衡实现原理(十一)

文章目录客户端负载均衡入口负载均衡策略总体实现负载均衡策略实现AbstractLoadBalanceRandomLoadBalance 基于权重随机策略AutoawareLoadBalance 最小请求数策略RoundRobinLoadBalance 基于权重轮询策略WeightedAutoawa...

2019-02-06 10:22:28

阅读数 91

评论数 0

【Pigeon源码阅读】区域路由策略实现原理(十)

文章目录DefaultRouteManagerRegionPolicyManager区域路由基础配置配置初始化路由策略应用流程AutoSwitchRegionPolicy 自动切换区域路由路由规则源码实现WeightBasedRegionPolicy 基于权重区域路由路由规则源码实现ForceRe...

2019-02-01 11:42:50

阅读数 100

评论数 0

【Pigeon源码阅读】客户端集群访问策略实现原理(九)

策略介绍和配置示例 在pigeon开源版本中,目前实现了4种集群策略: failfast:调用服务的一个节点失败后抛出异常返回,可以同时配置重试timeoutRetry和retries属性 failover:调用服务的一个节点失败后会尝试调用另外的一个节点,可以同时配置重试timeoutRetr...

2019-02-01 11:42:00

阅读数 54

评论数 0

【Pigeon源码阅读】RPC底层通信实现原理(八)

文章目录pigeon TCP协议格式粘包半包问题定长消息头格式默认协议消息格式统一协议消息格式消息体Netty3 Handler相关实现上下游传递原理相关实现ChannelHandlerContextOneToOneDecoder & OneToOneEncoder...

2019-02-01 11:38:57

阅读数 34

评论数 0

【Pigeon源码阅读】服务提供响应流程解析(七)

文章目录Netty接收调用方请求过程RequestThreadPoolProcessor 请求线程池处理器拦截器链初始化原理线程池选取原理流量控制原理拦截器执行逻辑WriteResponseProcessFilterContextTransferProcessFilterExceptionProc...

2019-02-01 11:36:52

阅读数 29

评论数 0

【Pigeon源码阅读】服务调用请求流程解析(六)

文章目录服务代理对象调用原理InvocationContext 调用上下文讲解pigeon自带拦截器解析RemoteCallMonitorInvokeFilterTraceFilterFaultInjectionFilterDegradationFilterClusterInvokeFilterG...

2019-02-01 11:35:37

阅读数 24

评论数 0

【Pigeon源码阅读】服务发现与调用初始化流程解析(五)

文章目录测试代码InvokerConfig定义服务调用方静态初始化流程ServiceFactory静态初始化ServiceFactory#getService方法实现调用方启动类InvokerBootStrap 初始化流程解析序列化类创建服务代理对象ServiceInvocationProxy注册...

2019-02-01 11:34:20

阅读数 69

评论数 0

【Pigeon源码阅读】服务注册发布流程(四)

文章目录测试代码ProviderConfig定义ServerConfig配置服务提供方静态初始化流程ServiceFactory静态初始化ProviderBootStrap初始化流程注册服务调用请求的处理拦截器初始化序列化工厂初始化注册管理器addService发布服务流程检查服务名Service...

2019-02-01 11:33:28

阅读数 107

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭