美文网首页互联网科技
带你涨姿势,认识一下Kafka!

带你涨姿势,认识一下Kafka!

作者: 码农小光 | 来源:发表于2019-12-16 00:01 被阅读0次

什么是 Kafka

Kafka 是一个分布式流式平台,它有三个关键能力

  • 订阅发布记录流,它类似于企业中的消息队列 或 企业消息传递系统

  • 以容错的方式存储记录流

  • 实时记录流

Kafka 的应用

  • 作为消息系统

  • 作为存储系统

  • 作为流处理器

Kafka 可以建立流数据管道,可靠性的在系统或应用之间获取数据。

建立流式应用传输和响应数据。

Kafka 作为消息系统

Kafka 作为消息系统,它有三个基本组件

image
  • Producer : 发布消息的客户端

  • Broker:一个从生产者接受并存储消息的客户端

  • Consumer : 消费者从 Broker 中读取消息

在大型系统中,会需要和很多子系统做交互,也需要消息传递,在诸如此类系统中,你会找到源系统(消息发送方)和 目的系统(消息接收方)。为了在这样的消息系统中传输数据,你需要有合适的数据管道

image

这种数据的交互看起来就很混乱,如果我们使用消息传递系统,那么系统就会变得更加简单和整洁

image
  • Kafka 运行在一个或多个数据中心的服务器上作为集群运行

  • Kafka 集群存储消息记录的目录被称为 topics

  • 每一条消息记录包含三个要素:键(key)、值(value)、时间戳(Timestamp)

核心 API

Kafka 有四个核心API,它们分别是

  • Producer API,它允许应用程序向一个或多个 topics 上发送消息记录

  • Consumer API,允许应用程序订阅一个或多个 topics 并处理为其生成的记录流

  • Streams API,它允许应用程序作为流处理器,从一个或多个主题中消费输入流并为其生成输出流,有效的将输入流转换为输出流。

  • Connector API,它允许构建和运行将Kafka 主题连接到现有应用程序或数据系统的可用生产者和消费者。例如,关系数据库的连接器可能会捕获对表的所有更改

image

Kafka 基本概念

Kafka 作为一个高度可扩展可容错的消息系统,它有很多基本概念,下面就来认识一下这些 Kafka 专属的概念

topic

Topic 被称为主题,在 kafka 中,使用一个类别属性来划分消息的所属类,划分消息的这个类称为 topic。topic 相当于消息的分配标签,是一个逻辑概念。主题好比是数据库的表,或者文件系统中的文件夹。

partition

partition 译为分区,topic 中的消息被分割为一个或多个的 partition,它是一个物理概念,对应到系统上的就是一个或若干个目录,一个分区就是一个 提交日志。消息以追加的形式写入分区,先后以顺序的方式读取。

image

分区可以分布在不同的服务器上,也就是说,一个主题可以跨越多个服务器,以此来提供比单个服务器更强大的性能。

segment

Segment 被译为段,将 Partition 进一步细分为若干个 segment,每个 segment 文件的大小相等。

broker

Kafka 集群包含一个或多个服务器,每个 Kafka 中服务器被称为 broker。broker 接收来自生产者的消息,为消息设置偏移量,并提交消息到磁盘保存。broker 为消费者提供服务,对读取分区的请求作出响应,返回已经提交到磁盘上的消息。

broker 是集群的组成部分,每个集群中都会有一个 broker 同时充当了 集群控制器(Leader)的角色,它是由集群中的活跃成员选举出来的。每个集群中的成员都有可能充当 Leader,Leader 负责管理工作,包括将分区分配给 broker 和监控 broker。集群中,一个分区从属于一个 Leader,但是一个分区可以分配给多个 broker(非Leader),这时候会发生分区复制。这种复制的机制为分区提供了消息冗余,如果一个 broker 失效,那么其他活跃用户会重新选举一个 Leader 接管。

image

producer

生产者,即消息的发布者,其会将某 topic 的消息发布到相应的 partition 中。生产者在默认情况下把消息均衡地分布到主题的所有分区上,而并不关心特定消息会被写到哪个分区。不过,在某些情况下,生产者会把消息直接写到指定的分区。

consumer

消费者,即消息的使用者,一个消费者可以消费多个 topic 的消息,对于某一个 topic 的消息,其只会消费同一个 partition 中的消息

image

相关文章

  • 带你涨姿势,认识一下Kafka!

    什么是 Kafka Kafka 是一个分布式流式平台,它有三个关键能力 订阅发布记录流,它类似于企业中的消息队列 ...

  • 今日全宇宙最涨姿势的十张图 ~

    ························涨姿势····························· ...

  • 涨姿势!

  • 涨姿势

  • 涨姿势

    今天和一朋友闲聊,说起前任领导的司机,因前任领导要调离,在走之前,先把他的司机给调到了好岗位。 我感叹到,关键是那...

  • 涨姿势

    前段时间对于写日记,非常困顿,于是四处求医问药!不过也不敢说是四处,这样的事可不好去询问不相熟的人,因为怕给对方招...

  • 涨姿势

    运动这件事:贵在习惯 行动主义>形式主义。[玫瑰]如果想要培养运动的习惯,大可不必逼自己办一张昂贵的健身卡。 [玫...

  • 涨姿势

    付之梨枣[fù zhī lí zǎo] 付之梨枣,汉语成语,拼音是fù zhī lí zǎo,指刻版刊印书籍,出自...

  • 涨姿势

    100道世界地理常识题 ​​​

  • 涨姿势

    五花八门——源于江湖。 五花依五行排序:金菊花乃卖茶的老妪, ...

网友评论

    本文标题:带你涨姿势,认识一下Kafka!

    本文链接:https://www.haomeiwen.com/subject/kyvegctx.html