kafka系列之初步认识(零)

时间:2021-09-22 02:19:57

Kafka是什么

发布/订阅消息中间件
也被称为分布式流平台

Kafka的诞生

最初是为了解决LinkedIn数据通道问题,最后捐献给了Apache,是Apache的*项目。

Kafka适合的场景

  • 用户行为跟踪,可以将网页/用户操作等信息发送到kafka中.并实时监控,或者离线统计分析等
  • 消息系统,最常见一种场景。应用程序(生产者)产生消息,发送到Kafka,另外一个应用程序消费Kafka的消息。
  • 应用系统监控,应用程序定期将系统各指标发送到Kafka,消费者消费进行预测、分析等。
  • 日志提交服务,应用可以将操作日志”批量”、”异步”的发送到kafka集群中,而不是保存在本地或者DB中;kafka可以批量提交消息/压缩消息等
  • 流处理,目前Kafak的新定位是流处理平台,实时处理流数据。

Kafka的基本构件

  • topic

    主题,Kafka根据topic对消息进行归类,发布到Kafka集群的每条消息都需要指定一个topic

  • partition

    分区,一个topic可以分为多个partition,每个partition内部信息是有序的

  • producer

    消息生产者,向broker发送消息的客户端

  • comsumer

    消息消费者,从broker读取消息的客户端

  • broker

    代理服务器,Kafka的消息处理节点。一个Kafka节点就是一个broker,一个或者多个broker可以组成一个Kafka集群

Kafka的特点

  • 支持多生产者

    Kafka支持多个生产者使用多个topic或者一个topic同时发送消息到broker,无需为每个生产者提供一个broker。

  • 支持多消费者

    Kafka支持多个消费者订阅单个topic的消息,消费者按组分类,同一个消费组的消费者,只有一个comsumer可以消费消息,不同的消费组默认轮询消费消息。

  • 消息支持持久化

    消息按照我们的配置选项保存在磁盘,意味着不用担心消息丢失。

  • 可扩展

    支持集群扩展,当处理的数据增长比较快时,可以扩展broker节点,削峰填谷,不影响系统的整体性能。另外Kafka可以容忍单个或者一部分broker宕机,也不会对系统造成影响。

  • 高性能

    在高负载下,消息的延迟也很低,在秒级之内。