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()); }
1735

被折叠的 条评论
为什么被折叠?



