Kafka

Kafka基本原理

Kafka

简介

  • Kafka由Linkedin开发的消息队列,使用Scala语言编写
  •  分布式、多分区、多副本、基于发布/订阅的消息洗系统
  •  Kafka设计的初衷是希望作为一个统一的信息收集平台,能够实时的收集反馈信息,并能够支撑较大的数据量,且具备良好的容错能力

Kafka特性

  • 消息持久化:采用时间复杂度O(1)的磁盘结构顺序存储  高吞吐量:支持每秒百万级别的消息
  •  易扩展:新增机器,集群无需停机,自动感知
  •  高容错:通过多分区,多副本提供高容错性
  •  多客户端支持:Java、PHP、Python等
  •  实时性:进入到Kafka的消息能够立即被消费者消费互联网新技术在线教育领航者

Kafka消息队列作用
• 应用程序解耦并行处理
• 顺序保证
• 高吞吐率
• 高容错、高可用
• 可扩展
• 峰值处理

Kafka原理

 在Kafka中,发送消息者称为Producer,而消息拉取者称为Consumer ,通常consumer是被定义在Consumer Group里
 Kafka通过Zookeeper管理集群


 Kafka集群由多个实例组成,每个节点称为Broker,对消息保存时根 据Topic进行归类
 一个Topic可以被划分为多个Partition
 每个Partition可以有多个副本


 Partition内顺序存储,写入新消息采用追加的方式,消费消息采用 FIFO的方式顺序拉取消息
 一个Topic可以有多个分区,Kafka只保证同一个分区内有序,不保 证Topic整体(多个分区之间)有序


 Consumer Group(CG),为了加快读取速度,多个consumer可以划 分为一个组,并行消费一个Topic
 一个Topic可以由多个CG订阅,多个CG之间是平等的,同一个CG内可以有一个或多个consumer,同一个CG内的consumer之间是竞争关系,一个消息在一个CG内的只能被一个consumer消费


Kafka核心概念

 Broker:启动kafka的一个实例就是一个broker,一个kafka集 群可以启动多个broker
 Topic:kafka中同一种类型数据集的名称,相当于数据库中的表,productor将同一类型的数据写入的同一个topic下,consumer从同一个topic消费同一类型的数据
 Partition:一个topic可以设置多个分区,相当于把一个数据 集分成多份分别放到不同的分区中存储,一个topic可以有一 个或者多个分区,分区内消息有序
 Replication:副本,一个partition可以设置一个或者多个副本 ,副本主要保证系统能够持续不丢失的对外提供服务,提高 系统的容错能力
 Producer:消息生产者,负责向kafka中发布消息
 Consumer Group:消费者所属组,一个Consumer Group可以包含一个或者多个consumer,当一个topic被一个Consumer Group消费的时 候,Consumer Group内只能有一个consumer消费同一条消息,不会 出现同一个Consumer Group多个consumer同时消费一条消息造成一 个消息被一个Consumer Group消费多次的情况
 Consumer:消息消费者,consumer从kafka指定的主题中拉取消息
 Zookeeper:Zookeeper在kafka集群中主要用于协调管理,Kafka将
元数据信息保存在Zookeeper中,通过Zookeeper管理维护整个Kafka 集群的动态扩展、各个Broker负载均衡、Partition leader选举等

Kafka存储

每个partition的副本是一个目录
 Segment:段文件,kafka中最小数据存储单位,一个partition包含多 个segment文件,每个segment以message在partition中的起始偏移量 命名以log结尾的文件
 Offset:消息在分区中的偏移量,用来在分区中唯一的标识这个消 息
 Kafka为了提高写入、查询速度在partition文件夹下每一个segment log文件都有同名的索引文件,在kafka0.10以后的版本中会存在两个 索引文件,一个用offset做名字以index结尾的索引文件,我们称为 偏移量索引文件。一个是以消息写入的时间戳为做名字以timeinde 结尾的索引文件,我们称为时间戳索引文件。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容