Kafka学习笔记(二)

Apache Kafka 基本原理

这里写图片描述

从上图,可以浅显的看到,一个topic配置了三个partition。Partition 1 有两个偏移量0和1;Partition 2 有四个偏移量0,1,2,3;Partition 3 有一个偏移量0。Broker中的replica的id与其server的id一致。

总之,如果topic的replication factor被设置为3,Kafka将会对应每个Partition创建1个完全相同的replica(总共3个)并放置到集群中的节点。为了平衡集群的负载,每个broker将对应至少一个partition。多个producer和consumer可以同时发布和拉取消息。


Topic : 归属于一种类别的数据流既是一个topic(主题);数据存放在多个Topic中;Topics会被分割成至少一个Partition(Kafka默认partition为1);每个partition的消息被塞入一个不可变且排序的序列中;一个partition由多个等大的分割文件组成

Partition : Topics可以有很多个partition,所以它可以hold住任意数量的数据

Partition offset : 每个被分割的消息都有一个唯一的序列id(即offset)

Replica of partition : Replica仅作为partition的备份,从不读写数据,只是为了防止数据丢失(容灾)

Broker : Broker相当于缓存服务器,缓存已发布的数据;每个broker都有0或更多的partition对应每个topic;举个栗子,如果该topic有N个partition,同时有N个broker,则每个broker有一个partition……如果该topic有N个partition,同时有(N+m)个broker,则将有m个broker一个partition都没有(没事做,浪费资源)……如果该topic有N个partition,同时有(N-m)个broker,则每个broker有多个partition

Kafka Cluster : 多个broker则构成一个kafka集群;一个kafka集群可以做到零停机时间扩展;这个集群将管理持久化以及replica中的数据

Producer : Producer是topic消息的生产者,发送数据到broker;producer实时发布消息到broker,broker拼接数据到某个partition中;producer也可以自定义发送数据到某个partition

Consumer : Consumer从broker中读取数据;consumer通过订阅topic,从broker中拉取相应topic的消息过来并做处理(即消费)

Leader : Leader节点负责相应partition的所有读写;每个partition都有一个server作为leader

Follower : 当集群中的leader挂了,其中一个follower将被选举为新的leader;一个follower作为一个普通的consumer,负责拉取数据并更新到自己的数据存储区


原文地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值