12 2015 档案

摘要:purgatory的超时检测当一个DelayedOpeartion超时(timeout)时,它需要被检测出来,然后调用它的回调方法。这个事情看起来很简单,但做好也并不容易。0.8.x的Kafka的实现简单明了,但是效率不高。这些版本的Kafka的delayed request实现了java.util... 阅读全文
posted @ 2015-12-27 12:55 devos 阅读(927) 评论(0) 推荐(0) 编辑
摘要:Purgatory是Kafka server中处理请求时使用的一个重要的数据结构。正好研究ReplicaManager源码的时候发现了这篇文章,顺便翻译下。由于这个proposal里的很多东西需要看源码才能理解得比较清楚,但是代码还是比较多的,所以先大概讲一下其中的一些概念和原理,以便于阅读接下来的... 阅读全文
posted @ 2015-12-21 22:39 devos 阅读(1714) 评论(0) 推荐(0) 编辑
摘要:purgatory就是炼狱的意思。当一个DelayedOperation需要被delay时,它就被放到DelayedOperationPurgatory,相当于进行一个等待池。上一篇blog提到过,DelayedOperation想要摆脱delay状态,需要由事件来触发对它状态的检查,或者是超时时间... 阅读全文
posted @ 2015-12-19 16:22 devos 阅读(574) 评论(0) 推荐(0) 编辑
摘要:DelayedOperation包括两种:DelayedFetch和DelayedProduce,它们的存在是由Kafka Protocol决定的,而Kafka Protocol是由实际需求决定的…… 存在DelayedFetch是为了更有效率的fetch,也就是batch fetch;存在Dela 阅读全文
posted @ 2015-12-17 22:00 devos 阅读(814) 评论(0) 推荐(0) 编辑
摘要:基于Kafka 0.9.0版ReplicaManager需要做什么Replicated LogsKafka的partition可以看成是一个replicated log, 每个replica就是这个replicated log其中的一个log。多个replica是为了容忍机器故障,因此同一个part... 阅读全文
posted @ 2015-12-15 20:55 devos 阅读(1023) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示