Kafka 源码解析之 Producer NIO 网络模型(四)

本文是 Kafka 源码解析的第四篇,在写这篇文章之前,专门看了一下 Java NIO 相关的内容,只有理解了 Java NIO 模型才能更好地理解 NIO 在 Kafka 中是如何应用的以及 Producer 如何利用 Java NIO 构建其网络模型(不了解的,可以先看一下上一篇文章:谈一谈 Java IO 模型),同时,本文也是对 Producer 整个流程的一个总结,主要讲述以下两个问题:

阅读更多

谈一谈 Java IO 模型

Java IO 模型对于 Java 开发工程师来说,是日常工作中经常接触的内容,特别是随着分布式系统的兴起,IO 也显得越来越重要,Java 的 IO 模型本质上还是利用操作系统提供的接口来实现,不熟悉这一部分内容的话,可以先看一下上篇文章Unix 网络 IO 模型及 Linux 的 IO 多路复用模型,本文跟上篇的内容是紧密相连的,特别是本文的重点 —— Java NIO 部分,其底层原理就是 UNIX 的 IO 多路复用,IO 多路复用在上篇文章中讲述了很多。

阅读更多

Unix 网络 IO 模型及 Linux 的 IO 多路复用模型

近段在看 Kafka 的网络模型时,遇到了很多 Java NIO 的内容,在学习 Java NIO 的过程中,发现需要把 UNIX 的这几种网络 IO 模型以及 Linux 的 IO 多路复用理解清楚,才能更好地理解 Java NIO,本文就是在学习 UNIX 的五种网络 IO 模型以及 Linux IO 多路复用模型后,做的一篇总结。

阅读更多

Kafka 源码解析之 topic 创建过程(三)

本文是 Kafka 源码解析的第三篇,主要讲述一个 topic 的创建过程,从 topic 是如何创建到 topic 真正创建成功的中间详细过程,文章主要内容可以分为以下几个部分:

阅读更多

Linux 常用的一些系统命令

文章的内容,基本来自每日一个 linux 命令,选取了几个在工作常用的命令,有:top、iostat、netstat 、free 和 ps,本文的主要目的是在学习这几条命令的过程中,简单做一些记录,便于日后工作中更加熟练地使用这些命令。

阅读更多

Kafka 源码解析之 Producer Metadata 更新机制(二)

在上一篇文章中,已经介绍了 Producer 的发送模型,Producer dosend() 方法中的第一步,就是获取相关的 topic 的 metadata,但在上篇中并没有深入展开,因为这部分的内容比较多,所以本文单独一篇文章进行介绍,本文主要来讲述以下三个问题:

阅读更多

买房感想

落户+买房的事情终于搞定得差不多了(就差贷款合同的签署),六月份这个月已经往来杭州3趟,从四月底开始看房到现在,这一路真是五味杂粮、感慨颇多,亲身地感觉到生活之不易,无忧无虑的生活从离开大学的那一刻开始就已经结束,读研这两年半看似浑浑噩噩,但早已没有大学时的那种轻松惬意,或许这就是成长。

阅读更多

Kafka 源码解析之 Producer 发送模型(一)

早就开始计划写 Kafka 源码分析的文章,但却一直迟迟没有动手,直到看到一位同事的博客 编程小梦,彻底受到了打击,这位同事是去年本科毕业,年龄算起来应该比我小两岁,但是非常厉害,在刚工作半年的时候就成为了 Apache Kylin 的 commiter,看到身边同事这么优秀,而且还这么努力 (编程小梦-我的书单),自己实在没有理由不努力了,因此,在 github 上给自己提了一个 issue Kafka 源码分析系列,希望自己能够在未来半年里,至少每两周输出一篇 Kafka 源码分析的文章,本文是这个系列的第一篇 —— Producer 的发送模型(以 Kafka 0.10.2 为例)。

阅读更多

CSS 一些常用方法的总结

CSS 指的是层叠样式表(Cascading StyleSheet),在网页制作时采用层叠样式表技术,可以有效地对页面的布局、字体、颜色、背景和其它效果实现更加精确的控制,本文对 css 一些基本内容及常用功能进行一下总结,总结的内容主要是来自实验楼的 CSS 速成教程,这篇文章会实时更新,后续如果遇到什么好的有用功能,也会更新到这篇文章中。

阅读更多

HTML 一些常用方法的总结

HTML 是一种语言,是用来描述网页的语言,它是一种标记语言,HTML 就是使用标记标签来描述网页。

阅读更多

入职培训感想

这周参加了公司的封闭式入职培训,总共是五天的时间,今年是公司第一次进行校招封闭式培训。记得去年七月份来公司实习,一起入职的校招同事参加的入职培训才两天时间,而且也不是封闭式的,一年的时间,变化还是很大的,这也间接证明公司的发展速度很快。作为公司第一届参加封闭式入职培训的员工(不是这届的第一批),在这五天中明显感觉到了收获了很多,这里记录总结一下。

阅读更多

腾讯传,一个激情澎湃的时代

这两周把《腾讯传》看完了,这本书去年出版的时候就想去看,但是一拖就拖到了现在,直到上周出去玩,回来的时候路上遇到了堵车,车上实在无聊,就开始看这本书。我平时是比较喜欢看这类科技史或科技公司史的书,第一次看这种类型的书,读的吴军老师的《浪潮之巅》,当时真叫是一个过瘾,至今还记得当时那种情景 —— 怎一个爽字了得,一口气连着两天在图书馆把这本书看完了。可是现在在看《腾讯传》时,已经没有了那种感觉,但最后还是在两周的时间里把这本书看完了,跟着吴晓波一起重温了一个伟大互联网公司(3Q 之后的腾讯)发展历程 —— 一个激情澎湃的时代。

阅读更多

欧洲简史

最近几周把这本你一定爱读的极简欧洲史读完了,在阅读的过程中,感觉真的是很爽,不愧是豆瓣的8+分图书。读完本书,可以对欧洲的历史有一个大概的了解,即便是最后很多的细节记不清楚,但是整个历史过程还是会有一定的印象,能建立一个大概的时间线。读完本书,如果再有人问你为什么现代科学、政治制度会诞生在西方,而不是一直领先的中国?你应该也能说几个理由的。

阅读更多

Storm 对 0.10.x 版 Kafka 支持解析

由于 0.10.x 版 Kafka 与 0.8.x 版有很大的变化,这种变化对下游 Storm 有非常大的影响,0.10.x 版的 Kafka 不但增加了权限管理的功能,而且还将 simple 和 high consumer 的 offsets 进行统一管理,也就意味着在 0.8.x 中 Storm 需要去负责管理 offsets,而在 0.10.x 中,Storm 不需要关心 consumer 的 offsets 的问题,这对 KafkaSpout 的设计有很大的影响,本文就是对 Storm 对 0.10.x 版 Kafka 支持的实现部分的解析。

阅读更多

Kafka 之 Group 状态变化分析及 Rebalance 过程

前段时间看一下 Kafka 的部分源码(0.10.1.0 版),对一些地方做了一些相应的总结。本文主要就 Kafka Group 方面的内容做一下详细的讲述,重点讲述 Consumer Client 如何进行初始化、Server 端对应的 Consumer Group 状态如何进行变化以及对一些 Kafka 的新设计(与旧版不同之处)简单介绍一下。

阅读更多

别人向上,我们却在向下

花了两周多的时间把钱穆老先生这部神作读完了,读完之后的感觉是,书中有太多的观点让我有醍醐灌顶之感,钱老读史思考的深度远非常人所及,这本书非常值得拜读,豆瓣上也同样给出了9分以上评价,真的名不虚传(《中国历代政治得失》)。因为这本书并不是一气看完,大部分是在上下班的班车上看的,每天看一部分,持续半个月之后才看完,所以书中一些感觉很不错的观点到现在可能已经忘了一部分,现在回忆起整本书,大概有三点让我印象非常深刻,下面也会就这三点讲述一下。

阅读更多

2016年终总结

今天凌晨2点吃完饭回来之后,真是辗转反侧,不知为何,一直难以入眠,或许因为过了睡点,又或许因为昨晚的年会玩得太嗨,也可能是感觉对过去的一年有些许遗憾……

阅读更多

Java 的 Checked 和 Unchecked Exception【译】

如果在 Java 应用中对 Exception 能够正确处理,那么将会使你的程序更具有健壮性。但是很多人对 Exception 中的 Checked ExceptionUnchecked Exception 并不理解,并且 Exception 又常常被被分为 JVM Exception 和程序 Exception,这就让一些开发者显得更加困惑了,本文就这几个概念详细讲述一下。(本文翻译自Checked and Unchecked Exceptions in Java

阅读更多

Vim 快捷键总结

Vim 到目前位置也用了将近两年,但是很多的快捷键每次要用到的时候还是会 Google 一下,只能记住很少的命令,查的过程其实还是会浪费很多时间,这里总结一下一些常用的 Vim 命令,以便以后查看。

阅读更多

技巧,其实并没有什么技巧,只不过多了些毅力罢了

本文是关于技巧这本书的读书笔记。这本书是作者根据自己的生活学习经历悟出的一些方法论,满满的正能力,但有不同于一般的鸡汤文,书中提到的那些技巧,其实每个人都可以做到,但实际上却很少有人做到,正如作者所说因为别人都睡着,你醒着那么你就是杰出的。方法其实还是那种最简单的方法,简要来说就是行动+坚持,这也是最难的方法,因为坚持是最难的。用这种方法达到自己想要效果的人就认为这种方法非常有用,就如作者学习英语一样,而对于大多数那些坚持不下去的人来说,他们感觉这就是在扯犊子,正所谓方法因人而异。如果一味地去追求 XX 天精通 XX,其实最后的结果只会是从入门到放弃

阅读更多