AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。AMQP在消息提供者和客户端的行为进行了强制规定,使得不同卖商之间真...
分类:
其他好文 时间:
2014-07-07 23:15:42
阅读次数:
326
在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
一,基本概念MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取或者订阅队列中的消息。MQ和JMS类似,但不同的是JMS是SUNJAVA消息中间件服务的一个标准和API定义,而MQ则是遵循了AMQP协议的具体实现和产品。RabbitMQ是一个在AMQP基础上完..
分类:
编程语言 时间:
2014-06-28 00:03:06
阅读次数:
3862
Kafka是一个分布式的消息中间件,可以粗略的将其划分为三部分:Producer、Broker和Consumer。其中,Producer负责产生消息并负责将消息发送给Kafka;Broker可以简单的理解为Kafka集群中的每一台机器,其负责完成消息队列的主要功能(接收消息、消息的持久化存储、为Consumer提供消息、消息清理.....);Consumer从Broker获取消息并进行后续的操作。...
分类:
其他好文 时间:
2014-06-27 23:55:13
阅读次数:
387
第一次写博客,有点想在博客园试水的感觉,也分享下觉得有用的东西(源码自己写的)什么是javascript中间件呢?函数middle就是用来构建中间件的,我用例子说明下下面我定义了一个函数use,在use第一个参数传入一个回调函数,如下function use(func){ func("参数1"...
分类:
编程语言 时间:
2014-06-27 00:14:45
阅读次数:
374
rmi服务,适合处理paas云的相关数据java中间件(例如:tomcat)的内存是有限的,但是即使是配置了内存,依然不可能无限的配置下去。server主要是接收客户端的请求,把响应返回给客户端。如果server只是做这些事情,那么并发量可以很高。但是在我们平常的开发当中,server的内存大部分用...
分类:
其他好文 时间:
2014-06-26 15:48:33
阅读次数:
160
Amoeba是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy。它集中地响应应用的请求,依据用户事先设置的规则,将SQL请求发送到特定的数据库上执行。基于此可以实现负载均衡、读写分离、高可用性等需求。与MySQL官方的MySQL Proxy相比,作者强调的是amoeba配置的方便(基于XML的配置文件,用SQLJEP语法书写规则,比基于lua脚本的MySQL Proxy简...
分类:
数据库 时间:
2014-06-26 14:18:15
阅读次数:
187