Kafka简介: 1.Apache Kafka是一个开源消息系统,由scala写成。是由Apache软件基金会开发的一个开源消息系统项目。 2. Kafka最初是由LinkedIn开发,并于2011年初开源。2012年10月从Apache Incubator毕业。该项目的目标是为处理实时数据提供一个统一、高通量、低等待的平台。 3. Kafka是一个分布式消息队列:生产者、消费者的功能。它提供了类似于JMS的特性,但是在设计实现上完全不同,此外它并不是JMS规范的实现。 4. Kafka对消息保存时根据Topic进行归类,发送消息者称为Producer,消息接受者称为Consumer,此外kafka集群有多个kafka实例组成,每个实例(server)成为broker。 5. 无论是kafka集群,还是producer和consumer都依赖于zookeeper集群保存一些meta信息,来保证系统可用性

JMS的基础: 1.JMS是什么:JMS是Java提供的一套技术规范 2.JMS干什么用:用来异构系统 集成通信,缓解系统瓶颈,提高系统的伸缩性增强系统用户体验,使得系统模块化和组件化变得可行并更加灵活 3.通过什么方式:生产消费者模式(生产者、服务器、消费者)

kafka系列--简介_李孟_新浪博客_大数据


JMS消息传输模型: 1.点对点模式(一对一,消费者主动拉取数据,消息收到后消息清除) 点对点模型通常是一个基于拉取或者轮询的消息传送模型,这种模型从队列中请求信息,而不是将消息推送到客户端。这个模型的特点是发送到队列的消息被一个且只有一个接收者接收处理,即使有多个消息监听者也是如此。 2.发布/订阅模式(一对多,数据生产后,推送给所有订阅者) 发布订阅模型则是一个基于推送的消息传送模型。发布订阅模型可以有多种不同的订阅者,临时订阅者只在主动监听主题时才接收消息,而持久订阅者则监听主题的所有消息,即时当前订阅者不可用,处于离线状态。 queue.put(object)  数据生产 queue.take(object)    数据消费

消息队列和rpc区别? 1.消息队列适用于异步场景,而rpc是远程同步调用。 2.消息队列是系统级、模块级的通信。RPC是对象级、函数级通信。 Rpc没有broker,而消息队列是管理消息的存储,rpc没有存储,只有通信。 3.消息队列最容易理解的方式就是生产者消费者模式,使两个应用解耦。mq等框架就是对这的具体实现。 rpc中主要有两点,一是消息的传输格式(文本或二进制),二是消息传输方式(http或tcp)。有的框架是对前者实现,如probuffer,有的是对后面实现,如netty,还有的就是一个整体实现,如thrift。 不管怎样,他们都是为了实现通信。