消息中间件的定位分析 在以下的分析中,把产生消息的应用统一定义为消息的生产者,接收消息的应用统一定义为消息的消费者,尽管在mq中不使用这样的定义,而是称之为消息的发送 者和接收者。从不同的消息中间件对消息的产生者和使用者的名称定义来看,实际上已经反映出各消息中间件之间定位的差异,通过下面的分析,这种...
分类:
其他好文 时间:
2014-07-07 22:59:08
阅读次数:
301
消息中间件(message oriented middleware)是指支持与保障分布式应用程序之间同步/异步收发消息的中间件。消息是分布式应用之间进行数据交换的基本信息单位,分布式应用程序 之间的通信接口由消息中间件提供。其中,异步方式指消息发送方在发送消息时不必知道接收方的状态,更无需等待接收方...
分类:
其他好文 时间:
2014-07-07 22:46:07
阅读次数:
276
在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
JMS(Java平台上的专业技术规范)编辑jms即Java消息服务(Java Message
Service)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MO...
分类:
编程语言 时间:
2014-05-26 06:25:18
阅读次数:
437
上周一直在研究zeromq,并且也实现了了zeromq在python和ruby之间的通信,但是如果是一个大型的企业级应用,对消息中间件的要求比较高,比如消息的持久化机制以及系统崩溃恢复等等需求,这个时候zeromq就显得有点鸡肋了,特别是消息持久化是他的的硬伤,那么怎么找一个比较适合的中间件呢?
....
分类:
编程语言 时间:
2014-05-22 02:07:32
阅读次数:
343