分布式消息系统 Kafka 基本介绍

Kafka的基本介绍

Kafka现在是Apache的开源项目之一,但是最初的研发,是由Linkedin公司开发的,主要是针对于日志收集和消息收集等场景下的分布式消息系统。

Kafka基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、访问日志,消息服务等等。

Kafka的优势:

以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间的访问性能。

高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条消息的传输。

支持Kafka Server间的消息分区,及分布式消费,同时保证每个Partition内的消息顺序传输。

同时支持离线数据处理和实时数据处理。

Kafka的设计原理

一个典型的Kafka集群中包含若干Producer,若干Broker,若干Consumer,以及一个Zookeeper集群。

Kafka通过Zookeeper管理集群配置,选举Leader,以及在Consumer Group发生变化时进行Rebalance。Producer使用push模式将消息发布到Broker,Consumer使用Pull模式从Broker订阅并消费消息。

Kafka专用术语:

Broker:消息中间件处理结点,一个Kafka节点就是一个broker,多个broker可以组成一个Kafka集群。

Topic:一类消息,Kafka集群能够同时负责多个topic的分发。

Partition:topic物理上的分组,一个topic可以分为多个partition,每个partition是一个有序的队列。

Segment:partition物理上由多个segment组成。

offset:每个partition都由一系列有序的、不可变的消息组成,这些消息被连续的追加到partition中。partition中的每个消息都有一个连续的序列号叫做offset,用于partition唯一标识一条消息。

Producer:负责发布消息到Kafka broker。

Consumer:消息消费者,向Kafka broker读取消息的客户端。

Consumer Group:每个Consumer属于一个特定的Consumer Group。

关于大数据技术-Kafka入门,以上就为大家做了一个简单的介绍了。Kafka在大数据系统平台的搭建当中,被应用得越来越广泛,掌握Kafka框架,也是很有必要的。

本文系作者在时代Java发表,未经许可,不得转载。

如有侵权,请联系nowjava@qq.com删除。

编辑于

关注时代Java

关注时代Java