上一页 1 2 3 4 5 6 ··· 8 下一页
摘要: 过去的两周我们讨论了一些使我们保持DRY和灵活性的函数式编程技术,特别是函数组合,partial function的应用,以及currying.接下来,我将会继续讨论如何使你的代码尽可能的灵活.但是,这次我们将不会讨论怎么使用函数作为一等对象来达到这个目的,而是使用类型系统,这次它不是阻碍着我们,而 阅读全文
posted @ 2016-02-06 18:23 devos 阅读(410) 评论(0) 推荐(0) 编辑
摘要: 用户指南 User GuideGuava项目包括了一些Google的核心库,是我们在基于Java的项目中所依赖的,这些库包括:集合,缓存,对基本类型的支持,并发库,通用的注解,字符串处理,I/O,等等。这些工具的每一个真的都在被Google每天使用着,而且是在生产系统中。但是只是在Javadoc中寻... 阅读全文
posted @ 2016-01-23 17:29 devos 阅读(1275) 评论(0) 推荐(0) 编辑
摘要: 概览Guava的接口代表了一个有运行状态的对象,有启动和停止的方法。比如网络服务器,RPC服务器,以及计时器等,都可以实现Service接口。掌管像这样的服务的状态,需要正确地管理启动和关闭,因此会是繁琐的,特别是牵扯到多线程和调度。Guava提供了一个基本的骨架,可以帮你管理状态逻辑,以及同步的细... 阅读全文
posted @ 2016-01-22 21:53 devos 阅读(1358) 评论(0) 推荐(0) 编辑
摘要: ListenableFutureExplained并发是一个困难的问题,但是使用强大而简单的抽象可以极大地简化并发问题。为了简化事情,Guava使用ListenableFuture继承了JDK的Future接口.我们强烈建议你在所在代码里总是使用ListenableFuture,而不是Future,... 阅读全文
posted @ 2016-01-21 21:27 devos 阅读(1550) 评论(0) 推荐(0) 编辑
摘要: 注:0.9版本Kafka的一个重大改变就是consumer和producer API的重新设计。 这篇Kafka的文档大致介绍了对于consumer API重新设计时想要实现的功能。0.9版本的确实现了这些功能,具体细节有几篇文档讲了,以后会翻译。 Motivation We've received 阅读全文
posted @ 2016-01-11 21:20 devos 阅读(478) 评论(0) 推荐(0) 编辑
摘要: Commit Log Kafka储存消息的文件被它叫做log,按照Kafka文档的说法是: Each partition is an ordered, immutable sequence of messages that is continually appended to—a commit lo 阅读全文
posted @ 2016-01-10 16:55 devos 阅读(35323) 评论(1) 推荐(2) 编辑
摘要: purgatory的超时检测当一个DelayedOpeartion超时(timeout)时,它需要被检测出来,然后调用它的回调方法。这个事情看起来很简单,但做好也并不容易。0.8.x的Kafka的实现简单明了,但是效率不高。这些版本的Kafka的delayed request实现了java.util... 阅读全文
posted @ 2015-12-27 12:55 devos 阅读(916) 评论(0) 推荐(0) 编辑
摘要: Purgatory是Kafka server中处理请求时使用的一个重要的数据结构。正好研究ReplicaManager源码的时候发现了这篇文章,顺便翻译下。由于这个proposal里的很多东西需要看源码才能理解得比较清楚,但是代码还是比较多的,所以先大概讲一下其中的一些概念和原理,以便于阅读接下来的... 阅读全文
posted @ 2015-12-21 22:39 devos 阅读(1686) 评论(0) 推荐(0) 编辑
摘要: purgatory就是炼狱的意思。当一个DelayedOperation需要被delay时,它就被放到DelayedOperationPurgatory,相当于进行一个等待池。上一篇blog提到过,DelayedOperation想要摆脱delay状态,需要由事件来触发对它状态的检查,或者是超时时间... 阅读全文
posted @ 2015-12-19 16:22 devos 阅读(557) 评论(0) 推荐(0) 编辑
摘要: DelayedOperation包括两种:DelayedFetch和DelayedProduce,它们的存在是由Kafka Protocol决定的,而Kafka Protocol是由实际需求决定的…… 存在DelayedFetch是为了更有效率的fetch,也就是batch fetch;存在Dela 阅读全文
posted @ 2015-12-17 22:00 devos 阅读(801) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 8 下一页