在大数据学习当中,重点之一就是大数据技术框架,针对于大数据处理的不同环节,需要不同的技术框架来解决问题。以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框架,也是大数据工程师们的重要技能点。