Kafka集群教程(一):理论介绍

1.Kafka是一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 

2.Kafka生动描述:Kafka就相比一个果篮,果篮里有很多水果,生产者就是往里放水果的爸爸妈妈,消费者就是拿水果的孩子。这其中,Kafka就相当于是这个篮子,是用来存东西的。

3.Kafka的一些重要概念:

  • massage: kafka中最基本的传递对象,有固定格式。
  • topic: 一类消息,如page view,click行为等。
  • producer: 产生信息的主体,可以是服务器日志信息等。
  • consumer: 消费producer产生话题消息的主体。
  • broker: 消息处理结点,多个broker组成kafka集群。
  • partition: topic的物理分区,每个partition都是一个有序队列。
  • segment: 多个大小相等的段组成了一个partition。
  • offset: 一个连续的用于定位被追加到分区的每一个消息的序列号,最大值为64位的long大小,19位数字字符长度。

4.Kafka的优势:

  • 设计为简单轻量的客户端库,可以轻松的嵌入到任何Java程序中

  • 除了Kafka本身作为内部消息传递层之外,没有外部依赖

  • 通过kafka的分区模型还实现横向扩展,并且保证数据的有序性

  • 支持本地状态容错,可以实现快速高效的有状态操作,如窗口链接和聚合

  • 支持一次处理语义,即使在处理过程中出现Streams客户端或Kafka代理失败时,每条记录也只会被处理一次

  • 采用一次一笔记录处理,实现毫秒级处理延迟

  • 支持基于事件时间的窗口操作并支持对延迟到达记录的处理

  • 提供必要的流处理原语,包括高级Streams DSL和底层的Processor API

猜你喜欢

转载自blog.csdn.net/m0_38075425/article/details/81081244