kafka概述

Kafka是一个分布式、高容错性的实时消息系统,常用于数据流处理、系统解耦以及消峰。它具有低延迟、可扩展的架构,支持数据持久化和多副本备份,确保高可用性。Kafka通过topics和partitions管理数据,消费者可以采用点对点或发布/订阅模式进行数据消费。
摘要由CSDN通过智能技术生成

kafka概述

定义

Kafka实际是一个全局的队列(queue),环形的数据缓存

web events
kafaka
database
system2
system2
spark
data analytics

当我们的业务变得越来越多,系统间的交互也会越来越复杂,这个时候在两个系统之间加入Apache kafka这个中间层,可以大大减少系统设计的复杂度,同时提高开发的速度和效率。
同时,如果消费者消费的速度远低于生产者生产的速度,系统也不会宕机,数据可以保存在kafka。

常见应用场景

  • 消峰,控制和优化数据流经过系统的速度,解决生产消息和消费消息的处理速度不一致的情况。
  • 流处理(stream processing)
  • 解耦(de-coupling of system depentencies),允许独立的扩展或修改两边的处理过程,只要确保遵守相同的接口约束。
  • 异步通信, 允许用户把一个消息放入队列,但不立即处理,在需要的时候再去处理它们。

特点

分布式:distributed
低容错:high performance, fault tolerant
低延迟:real time(latency of less than 10ms)
可扩展:resilient architecture,horizontal scalability

核心组成部分

Topics和Partitions

Topics:
a particular stream of data
数据存储的一个单位,可以理解为数据库中的一张表
通过kafka的API在写入和读取的时候,都需要指定topic,可以有很多topic。
Partitions:
一个topic可以有很多个分区,分区内部有序;
每一个分区都有一个不断增加的id,叫做offset;
每一个topic都可以设置自己想要的partition个数。

数据在kafka内默认保存时长是两周,可以进行配置
写入kafka内的数据是不可以被改变的(immutability),没办法更改写入的数据,只能重新写入一个msg,并对应新的offset。

Brokers和Data replications

Brokers
broker1
broker2
broker3

kafka集群由多个borker组成,一般是三个,但也有一些大公司是上百个(可见kafka很好的水平扩展能力);
每一个broker都有一个id,同时每个broker中可能包含不同topic的partions。
当需要与kafka集群连接时,任意连接一个broker(bootstrap broker)都可以成功与kafka集群进行通信。

kafka集群
当需要访问指定topic的指定分区,需要访问指定的broker,但在实际应用中只要访问到集群,kafka就知道我们需要访问的topic partition的位置,从而获取该partition中的数据。

Data replications

topic的partition需要有replication factor(个数一般是大于1),存放在与当前broker不同的broker中,这样当一个broker挂掉的时候,其他的broker可以继续提供服务。
replication factor等于2说明每一个partition都有一个副本,且分布在与自己当前broker不通的broker中。

leader for a partition

在这里插入图片描述
标星星的是对应parition的leader broker,任何时候一个partition只有一个leader broker。对于partition0,leader broker是broker1,partition1的leader broker是broker2。

任何时候,只能有一个broker做为topic partition的leader

即在cluster中,对应某一个topic partition的leader broker才能接收和发送该partition的数据,其他的brokers只能同步数据。
每一个partition有一个leader,多个ISR(in-sync replica)

两种模式

  • 点对点模式
    消费者主动拉数据,消息收到后清除消息
1.消费信息
2.确认收到
生产者
消息队列 3.删除
消费者
  • 发布/订阅模式
    • 有多个topic主题
    • 消费者消费数据后不删除数据
    • 每个消费者相互独立,都可以消费到数据
topic1
订阅1
订阅2
订阅3
topic2
生产者
消息队列
消费者
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值