Kafka介绍和使用

什么是Kafka?

分布式流数据平台,类似消息队列

流数据平台可以:1、发布和订阅流数据

                                   2、容错的存储流数据

                                   3、处理流数据

Kafka通常用来:  1、作为实时流数据通道,应用或系统间传输数据(实时性,低延迟,可

用于暂存重要数据)

                            2、做实时流数据处理、响应


Kafka通常用来做告诉输出的缓存,这是由于它变态的性能。另外它可以暂存重要数据,因为从Kafka消费(读取)数据后数据是不会立即删除的,而且这些数据可以设置备份。

 

Kafka的API

Producer:用于向Kafka生产数据,单个producer可以对应多topics

Consumer:用于从Kafka消费数据,单个consumer可以对应多topics

Streams:用于做简单的流数据处理,可生产可消费,多topics

Connector:用于创建运行多个producer和consumer

 

多语言:Java等主流语言都有对应的API

 

Topic:records的分类,所有record都是发布到某一个topic的

Record:{key,value,timestamp}

 

可以把Kafka理解为不可修改的queue(of records),保存一段历史时间的数据eg.两天

每个consumer元数据只保存一个offset,可由consumer自由控制,也就是说offset不一定是简单递增的,如果有这个需要,可以返回读取两天前的数据,或者直接读取最新的数据

 

 

Partition 一个topic被分为多个partition,可存在不同机器上,record被分配到不同partition(可根据key写分区函数),减少单个节点负载

Replica 每个partition有多个复制,可存在不同机器上,由一个leader和零或多个follower组成,只有leader可读可写,follower只写,leader挂掉后从follower中选出新的leader

 

保证:每个partition内按输入顺序存放

 

其他概念

Consumer group:同一个topic的不同partition平均动态分配到一个consumer group的所有consumer上,同一个topic可以broadcast到每一个consumer group(subscriber),每一个topic被分解传输到group里的不同consumer,如果同一个group中的消费者数量多于本topic的partition数量,多余的消费者将接收不到消息

Broker:Kafka集群中的机器/服务被成为broker, 是一个物理概念。

ISR

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值