分布式消息系统之Kafka入门

2020-09-30 17:07:07 浏览数 (1)

在大数据学习当中,重点之一就是大数据技术框架,针对于大数据处理的不同环节,需要不同的技术框架来解决问题。以Kafka来说,主要就是针对于实时消息处理,在大数据平台当中的应用也很广泛。今天我们就主要来讲讲分布式消息系统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框架,也是大数据工程师们的重要技能点。

0 人点赞