跳转至

1. 介绍

一、kafka介绍

1.1、kafka简介

kafka是由Linkedin公司开发的,一个分布式,支持多分区,多副本,基于zookeeper的分布式消息流平台。
也是一个基于发布订阅模式的消息引擎系统。

1.2、kafka关键术语

1.2.1、消息:kafka中的数据单元,也称作为记录。
1.2.2、批次:一组消息。为提高效率,消息会分批次的写入kafka。
1.2.3、主题(topic): 对消息的分类,及消息的种类。一个topic代表一类消息,类似于数据库的表
1.2.4、分区(partition):同一主题可分成多个分区,对应于一个物理文件,用于实现kafka的伸缩。
同一分区中的数据有序(基于写入顺序)。
1.2.5、生产者(producter):向topic中发送消息的客户端。生产者可持续向某个topic中发送消息
1.2.6、消费者(consumer):订阅消息的客户端, 用于处理生产者的消息。
1.2.7、消费者群组(group):由一个或多个消费者组成的群体。一条消息仅被同一消费群组的一个消费消费,
可被多个不同消费群组消费。
1.2.8、偏移量(offset):偏移量是一种递增的元数据,记录消费者发送重偏移的位置,可用于恢复数据。
1.2.9、broker:一个独立的kafka服务器,用于接收消息,及设置消息偏移量并保存到磁盘。
多个broker组成一个broker集群。
1.2.10、副本(replica):kafka消息的备份(即副本)。副本数量可进行配置。
副本分为领导副本(对外提供服务)和追随副本(被动跟随)
1.2.11、重平衡(rebalance):消费者群组中的消费者数发生变化后,消费者实例自动重新分配分区的过程。
重平衡是实现高可用的重要手段。

二、kafka特点

2.1、kafka优点

2.1.1、高吞吐:支持每秒几十万的吞吐量,耗时仅几毫秒。
2.2.2、高可靠及持久化:底层通过zookeeper 将数据持久化到磁盘,并通过备份防止数据丢失。
2.2.3、高并发:支持上千个客户端同时进行数据的读写操作
2.2.4、高伸缩:每个topic由多个paritition 组成,每个paritition分布在不同的broker上,可通过扩充broker及parititon数量进行水平扩展。
2.2.5、容错性:集群某节点失败,集群仍可正常工作

2.3、kafka缺点

2.3.1、依赖于zookeeper 进行元数据管理
2.3.2、仅保证同一paritition中的数据有序,多个paritition数据无法保证有序
2.3.3、不支持mqtt协议
2.3.4、数据存在丢失风险,且不支持事务
2.3.5、数据是批量进行发送,不完全实时

三、kafka应用场景

3.1、活动追踪:收集用户活动信息
3.2、消息传递:作为消息传递的中间件
3.3、度量指标:比如收集运营,报警指标信息等
3.4、日志记录:收集日志信息
3.5、流式处理:如作为flink流处理输入数据
3.6、限流削峰:通过kafka收集数据,进行限流、削峰处理

———————————————— 版权声明:本文为CSDN博主「wejboke626」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/wejboke626/article/details/117870680


最后更新: 2022-02-20 11:21:58