CC00003.kafka——|Hadoop&kafka.V03|——|kafka.v03|基本架构|核心概念.v02|

一、基本架构
### --- 消息和批次

~~~     # Kafka的数据单元称为消息。
~~~     可以把消息看成是数据库里的一个“数据行”或一条“记录”。消息由字节数组组成。
~~~     # 消息有键,键也是一个字节数组。
~~~     当消息以一种可控的方式写入不同的分区时,会用到键。
~~~     # 为了提高效率,消息被分批写入Kafka。
~~~     批次就是一组消息,这些消息属于同一个主题和分区。
~~~     # 把消息分成批次可以减少网络开销。
~~~     批次越大,单位时间内处理的消息就越多,单个消息的传输时间就越长。
~~~     批次数据会被压缩,这样可以提升数据的传输和存储能力,但是需要更多的计算处理。
### --- 模式

~~~     # 消息模式(schema)有许多可用的选项,
~~~     以便于理解。如JSON和XML,但是它们缺乏强类型处理能力。
~~~     Kafka的许多开发者喜欢使用Apache Avro。
~~~     Avro提供了一种紧凑的序列化格式,模式和消息体分开。
~~~     当模式发生变化时,不需要重新生成代码,它还支持强类型和模式进化,
~~~     其版本既向前兼容,也向后兼容。
~~~     # 数据格式的一致性对Kafka很重要,
~~~     因为它消除了消息读写操作之间的耦合性。
### --- 主题和分区

~~~     Kafka的消息通过主题进行分类。主题可比是数据库的表或者文件系统里的文件夹。
~~~     主题可以被分为若干分区,一个主题通过分区分布于Kafka集群中,提供了横向扩展的能力。
### --- 生产者和消费者

~~~     生产者创建消息。消费者消费消息。
~~~     一个消息被发布到一个特定的主题上。
~~~     生产者在默认情况下把消息均衡地分布到主题的所有分区上:
~~~     1. 直接指定消息的分区
~~~     2. 根据消息的key散列取模得出分区
~~~     3. 轮询指定分区。
~~~     消费者通过偏移量来区分已经读过的消息,从而消费消息。
~~~     消费者是消费组的一部分。消费组保证每个分区只能被一个消费者使用,避免重复消费。
### --- broker和集群

~~~     一个独立的Kafka服务器称为broker。
~~~     broker接收来自生产者的消息,为消息设置偏移量,并提交消息到磁盘保存。
~~~     broker为消费者提供服务,对读取分区的请求做出响应,返回已经提交到磁盘上的消息。
~~~     单个broker可以轻松处理数千个分区以及每秒百万级的消息量。
~~~     每个集群都有一个broker是集群控制器(自动从集群的活跃成员中选举出来)。
~~~     控制器负责管理工作:
~~~     将分区分配给broker
~~~     监控broker
~~~     集群中一个分区属于一个broker,该broker称为分区首领。
~~~     一个分区可以分配给多个broker,此时会发生分区复制。
~~~     分区的复制提供了消息冗余,高可用。副本分区不负责处理消息的读写。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yanqi_vip

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值