Hadoop源码--精彩代码的收集

1.CallQueueManager 的双引用消费者队列交换机制
2.PingInputStream 发送ping的时机
3 DataOutputBuffer 每次底层数组超限时,都会用复制来创建一个新的数组,来节省内存
4 Client。ClientExecutorServiceFactory 记录持有的引用数的单例模式
5. ipc包的Server reactive架构模式

6 Configuration getClassByNameOrNull class的缓存机制 ,还有弱引用的使用范例(YarnRpc其实还有对class的constructor的缓存).类似的还有

 RecordFactoryPBImpl的T newRecordInstance(Class<T> clazz)(怎样高效的用反射机制) 
7. RetryPolicy接口(方法shouldRetry(Exception e, int retries, int failovers, boolean isIdempotentOrAtMostOnce
)返回RetryAction)的各种针对产生的异常的重试策略,RetryAction有失败,重试,故障恢复后重试三种,并有重试时间字段。
RetryAction的不同取决于Exception的不同。比较经典的RetryPolicy实现类FailoverOnNetworkExceptionRetry时间以指数(*2)
增长
8.片段RetryInvocationHandler的构造函数Collections.<String, RetryPolicy>emptyMap(只是为了传空参数,而且
多次返回的是同一个常量)
protected RetryInvocationHandler(FailoverProxyProvider<T> proxyProvider,
    RetryPolicy retryPolicy) {
  this(proxyProvider, retryPolicy, Collections.<String, RetryPolicy>emptyMap());
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值