Kafka基础教程。

Apache Kafka是一个分布式消息发布订阅系统。它最初由LinkedIn公司基于独特的设计实现为一个分布式的提交日志系统( a distributed commit log),之后成为Apache项目的一部分。Kafka采用订阅-发布模式提供消息服务,支持不同消费组分别消费。在性能方面,它具有高吞吐量、低时延的特点。与Flink、Storm等计算框架兼容性好。在Kafka分布式消息集群中,没有“中心主节点”的概念,集群中所有的服务器都是对等的,因此,可以在不做任何配置的更改的情况下实现服务器的的添加与删除。
消息(Message)是指在应用之间传送的数据,消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回发布者和使用者都不需要感知对方的存在。消息队列系统负责将数据从一个应用程序传输到另一个应用程序,因此应用程序可以专注于数据,但不必担心如何共享数据。 消息队列协同的实现方式有两种类型,一种是点对点,另一种是发布-订阅(pub-sub)。
1).点对点消息队列系统
点对点消息队列系统如下图所示,消息被保存在一个队列中。 一个或多个消费者可以消费队列中的消息,但是特定的消息只能由最多一个消费者消费。 一旦消费者在队列中读取消息,消息就从该队列中消失。典型例子是一个订单处理系统,其中每个订单将由一个订单处理器处理,但是多订单处理器也可以同时工作。

2).发布-订阅消息系统
与点对点消息队列系统不同,在发布-订阅消息队列系统中,消息被保存在一个主题中,消费者可以订阅一个或多个主题并使用该主题中的所有消息。在发布-订阅系统中,消息生产者称为发布者,一个发布者可以同时发布多个不同主题的消息;消息消费者称为订阅者,订阅者也可以同时订阅多个主题的消息,分别进行消息读取。
