在kafka中,每一个broker都是一个服务器。按照一般理解,服务器就是一个SocketServer,其不断接收用户的请求并进行处理。在Java中进行网络连接有两种方式一种为阻塞模式一种为非阻塞模式。Jafka采用非阻塞模式进行网络通讯。在Java的非阻塞模式中,建立socket server的一般流程如下:
1.启动ServerSocketChannel并将其绑定到特定的端口。
2.将Se...
分类:
其他好文 时间:
2014-06-28 09:25:54
阅读次数:
235
Jafka Acceptor接收到客户端请求并建立连接后,Acceptor会将Socket连接交给Processor进行处理。Processor通过以下的处理步骤进行客户端请求的处理:
1. 读取客户端请求。
2. 根据客户端请求类型的不同,调用相应的处理函数进行处理。
Processor读取客户端请求是一个比较有意思的事情,需要考虑两个方面的事情:第一,请求规则(Processor需要按照...
分类:
其他好文 时间:
2014-06-28 09:25:18
阅读次数:
278
在Kafka中,LogManager负责管理broker上所有的Log(每一个topic-partition为一个Log)。通过阅读源代码可知其具体完成的功能如下:
1. 按照预设规则对消息队列进行清理。
2. 按照预设规则对消息队列进行持久化(flush操作)。
3. 连接ZooKeeper进行broker、topic、partition相关的ZooKeeper操作。
4. 管理brok...
分类:
其他好文 时间:
2014-06-28 08:25:21
阅读次数:
208
Functional ObjectAdvantages and Disadvantages of Immutable ObjectAdv 1. 不可变对象更具容易被推断出来,因为它不会随着时间的变化而造成值的变化。Adv 2. 不可变对象可以自动地传递不会发生变化,而传递可变对象的话,需要首先对可变...
分类:
其他好文 时间:
2014-06-27 13:55:22
阅读次数:
187
Class and Objectclass TestClass { val some = 1}生成的class文件中会包含一个some()方法,并且这个方法是public的,也就是说类外可以通过类的对象来获取这个some的值修改:class TestClass { private val som.....
分类:
其他好文 时间:
2014-06-26 22:31:24
阅读次数:
270
Basic Types and OperationsSomething new according to Java1 + 2跟(1).+(2)是一样的。val str = "Hello world"str indexOf 'o' 跟 str.indexOf('o')是一样的indexOf有两种形式的...
分类:
其他好文 时间:
2014-06-26 19:26:48
阅读次数:
193
Chapter1 and Chapter2方法定义:def methodName(param1: ParamType, param2: ParamType2, [maybe more]): ReturnType = { // method body}函数式编程中一个约定俗成的说法就是,方法会返回一....
分类:
其他好文 时间:
2014-06-25 19:15:35
阅读次数:
205
Learn to programming in funtional way如果一个方法中存在var的话,那么这个方法很可能就是指令式编程。如果一个方法中只存在val的话,那么这个方法很可能是函数式编程。我们需要尝试着把方法中的val删除掉。副作用,一个方法满足函数式编程的基本要求,但是返回值是一个U...
分类:
其他好文 时间:
2014-06-25 18:31:47
阅读次数:
166
团队已经决定逐步由java转向scala。现在的项目已经使用了几种编程语言。Java为主,ruby做代码生成器,python做安装脚本和命令行工具。其实从ruby和python的使用经验中,已经或多或少地接触到了FP的概念。Scala旗帜鲜明地在Java上增加了FP的功能,观念的冲突和复杂的语法让其...
分类:
其他好文 时间:
2014-06-25 11:36:19
阅读次数:
323
欢迎关注我的新博客地址:http://cuipengfei.me/
实在想不到什么动词可以当做脱衣服来讲了,所以从现在开始这系列博文就叫做Desugar Scala了。除非哪天才思泉涌,又想到了新词:)
开始正文。
名字叫做unapply和unapplySeq的方法在Scala里也是有特殊含义的。
我们前面说过case class在做pattern match时很...
分类:
移动开发 时间:
2014-06-24 19:42:48
阅读次数:
265