1、kafka的相关概念

kafka的相关概念

什么是Kafka

kafka是一个分布式的基于发布/订阅模式的消息队列,主要应用于大数据实时处理领域。在Kafka中,Kafka对消息的保存根据topic进行分类,发送消息的称为Producer,消息接收者称为Consumer。一个server成为一个broker,kafka依赖zookeeper保存一些元数据信息

kafka具有高容错,高效的特点。

  • Publish and subscribe to streams of records, similar to a message queue or enterprise messaging system.
  • Store streams of records in a fault-tolerant durable way.
  • Process streams of records as they occur.

kafka的应用

  • Building real-time streaming data pipelines that reliably get data between systems or applications
  • Building real-time streaming applications that transform or react to the streams of data

Kafka中的概念

Broker

一台kafka的服务器就是一个Broker,多个broker组成一个cluster.

Topic

kafka可以根据不同的业务需求将不同的数据存放在不同的topic中,topic是一个逻辑上的概念,在物理存盘上,topic对应文件夹的前缀。Kafka中的Topics总是多订阅者模式,一个topic可以拥有一个或者多个消费者订阅其上的数据。一个topic可以分布式的存储在多个kafka broker中。

Partition

每个topic有多个分区,通过分区的设计,topic可以不断的进行扩展。使用分区有两个好处,一是topic可以不断的扩展,即一个topic的多个分区可以分布式的存储在多个broker之中。二是在消费者消费数据时,可以并行的处理。kafka可以保证一个partition中的数据有序,但不能保证一个topic中读出的数据有序。例如:A-1(1,3) A-2(2,4)

Offset

每条消息通过offset标识记录的有序,offset是线性递增的,消费者可以通过offset从任意位置读取数据。

副本机制

日志的分区在kakfa集群的服务器上,每个服务器在处理数据和请求时,共享这些分区,每一个分区都会在已配置的服务器上进行备份,生成多个副本,保证容错性。每一个分区都有一个Leader和follwers。与zookpeer等不同,在kafka中,对于分区的所有写请求都由leader处理,多个follower从leader处拿数据。

Producer

消息生产者,就是向kafka broker发消息的客户端。生产者负责将记录分配到topic的指定 partition(分区)中。

Consumer

消息消费者,向kafka broker取消息的客户端。每个消费者都要维护自己读取数据的offset。

Consumer Group

每个消费者都会使用一个消费组名称来进行标识。同一个组中的不同的消费者实例,可以分布在多个进程或多个机器上。同一个组中的不同consumer只能同时读一个topic的不同分区。总之就是一个组中的consumer读的数据互斥,不同组的consumer读的数据互不干扰。

Record和offset

kafka中的record在生产时必须指定topic和value属性,可以选择指定partition,key,ts等。每个record在进入到分区后,会生成唯一的offSet,

offset可以让消费者在消费时,自由灵活的从任意位置消费

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值