最近看到两篇文章,一个是江南白衣的陌生但默默一统江湖的MurmurHash,另外一篇是张洋的一致性哈希算法及其在分布式系统中的应用。虽然我在项目中使用memcached的java客户端spymemcached好几年了,但是对它的一致性哈希算法的细节从来没有仔细研究过。趁此机会,特别的看了一下它的源代码。
微服务架构快速指南
这是Ketan Parmar发表的Microservice Architecture - A Quick Guide。
软件架构模式
本文是我在阅读O'Reilly免费的电子书 Software Architecture Patterns过程中做的笔记。
首先这本书非常新,2015年3月30号订正后发布。其次将目前流行的几种架构详细进行了剖析和比较,除了传统的N层架构外,其它架构相当的前沿。并且,这篇小书连带封面才55页,短小精悍,值得一读。这本书的作者是 Mark Richards,有30多年行业经验,19年软件集成,企业级架构的经验,大部分是Java平台,也出版了多本书和论文。
如果你没有时间去阅读这本书,那么不妨看一下本篇文章。 我在笔记中将书中的主要知识点都记录下来。
JVM 垃圾回收 Minor gc vs Major gc vs Full gc
原文: Minor GC vs Major GC vs Full GC
在Plumbr进行GC暂停检测功能的工作时, 我不得不阅读大量与此相关的文章,书籍和报告。在研究过程中, 对于Minor
, Major
和Full GC
时间我一再的困惑,这也就导致本博文的产生, 希望我能理清我的一些困惑。
本文期望读者熟悉JVM内建的垃圾回收的基本原理。JVM的内存堆对 Eden
, Survivor
和 Tenured/Old区
划分, 代假设和不同的GC算法不在本文的讨论之列。
Java 异步编程最佳实践
最近异步编程非常流行, 主要是它能够在多核系统上提高吞吐率。异步编程是一种编程方式,可以提高对UI的快速响应。 Java中的异步编程模型提供了一致性的编程模型, 可以用来在程序中支持异步。 本文讨论了在使用Java执行异步操作应该遵循的最佳实践。
Kafka 内幕:源代码High level分析
本文主要介绍了Kafka High level的代码架构和主要的类。
Spark: 大数据领域的新贵
现在谈起大数据几乎等价于谈论Hadoop及其它的生态圈产品。但是现在一个下一代的计算框架已经长大,而且声名显赫。那就是Spark。你或许已经听说过它以及它的诸多好处。
自从发布之日起,Hadoop就被认为是Google大数据工具的等价实现。它帮助很多公司处理先前不可想象的大数据。围绕着它的两个主要部件(HDFS,分布式一致性的文件系统,和MapReduce, 分布式的计算框架), 一堆相关的工具涌现, 补充并提高它的功能。
使用Scala开发Kafka应用
Kafka官方提供了Producer和Consumer的例子。 尽管Kafka是由Scala开发的,但是却没有提供使用Scala编写Producer和Consumer的例子。
本文介绍了使用Scala开发producer和consumer的例子。
项目代码可以在github上浏览下载: kafka-example-in-scala 。
Kafka实践:通过8个case学习Kafka的功能
Apache Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。
Apache Kafka与传统消息系统相比,有以下不同:
- 它被设计为一个分布式系统,易于向外扩展;
- 它同时为发布和订阅提供高吞吐量;
- 它支持多订阅者,当失败时能自动平衡消费者;
- 它将消息持久化到磁盘,因此可用于批量消费,例如ETL,以及实时应用程序。
我们将通过几个case学习Kafka的功能。
Kafka 配置参数
Kafka为broker,producer和consumer提供了很多的配置参数。 了解并理解这些配置参数对于我们使用kafka是非常重要的。
本文列出了一些重要的配置参数。
官方的文档 Configuration比较老了,很多参数有所变动, 有些名字也有所改变。我在整理的过程中根据0.8.2的代码也做了修正。