Kafka 官方文档学习笔记 -- introduction篇

本文是Kafka官方文档的学习笔记,主要介绍了Kafka作为分布式流平台的角色,包括发布和订阅记录流、容错持久存储、4个核心APIs(生产者、消费者、Streams、Connector)以及topics与logs的概念。此外,还详细阐述了Kafka的分布式特性、Geo-Replication、消费者行为以及Kafka作为存储系统的功能。
摘要由CSDN通过智能技术生成

Introduction

Kafka 是一个分布式流平台:
  1. 发布和订阅记录流,像消息队列/系统
  2. 容错持久地存储记录流
  3. 有记录流出现时处理
kafka概念:
  1. kafka是在多个服务器上以集群方式运行,并有多个数据中心
  2. 记录流存储在叫topics的类别里
  3. 每个记录包含了一个key,一个value和一个时间戳
4个APIs:
  1. Producer API : 允许程序发布1个数据流给一个或多个topics
  2. Consumer API : 允许程序订阅一个或多个topics并处理这些数据流
  3. Streams API : 允许程序扮演流处理器,从一个或多个topics中得到输入流并产生输出流给一个或多个topics
  4. Connector API : 建立和运行可重用的生产者和消费者来连接kafka topics到已有的程序或数据系统

api

Topics & Logs:

Topics是multi-subscriber, 可以有0/1/多个消费者订阅数据

topics

每个topic是一个Partitioned log

partition 是有序的,不可改变的,被持续append的,结构化的commit log

kafka cluster持久地保存所有records(无论是否被消费过),根据一个可配置的保留时常

topics

每个消费者保留的唯一metadata是offset,这个offset是被消费者控制的,它可随意调整消费数据的顺序

kafka 消费者可以随意来或走,而不会影响集群或其他消费者:可以用命令行来tail任何topic的内容而不用改变其他消费者正在消费的东西

分布:

每个partition分布在多个servers上,一个server上有多个partitions,以达到容错性

一个server扮演leader,其他扮演followers:

– leader 处理所有读写请求

– followers 被动复制leader

– 如果leader fail,从followers中选举leader

– 每个server扮演自己partition的leader 和 别人的follower

Geo-Replication:

主动/被动地镜像,来备份和恢复

生产者:

负责决定某个记录分配在这个topic的哪个partition – 负载均衡

消费者:

消费者分成组,每个发布到一个topic上的记录被放在每个组的一个消费者实例中,消费者实例可以在不同的进程或机器中

如果所有消费者都在一个组,则records会平均分配

如果所有消费者都不在一个组,则每个record分配在每个消费者上

topics

通常一个logical subscriber对应一个消费者组。

消费的方式:

– partitions被平均分给每个consumer实例,所以在任何时刻每个实例都是一部分partitions的唯一消费者

– 如果一个实例新来,就从现有实例分配一点过来

– 如果一个实例掉线,就将它的任务拆分给其他实例

kafka只支持对一个partition内的records的总调度,而不管partition之间的(partition内部调度和按key的切分已经足够)

Kafka as a Storage System:

写入kafka的数据被存在disk中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值