消息和批次
Kafka的数据单元被称作消息。
1)可以把消息看成是数据库里的一个“数据行”或一条“记录”。
2)消息由字节数组组成,所以Kafka的消息里的数据没有特别的格式或含义。
3)消息有一个可选的元数据,也就是键。当消息以一种可控的方式写入不同的分区时,会用到键。
为了提高效率,消息被分批次写入Kafka。批次就是一组消息,这些消息属于同一个主题和分区。
1)把消息分成批次传输可以减少网络开销。
2)要在时间延迟和吞吐量之间做出权衡:批次越大,单位时间内处理的消息越多,单个消息的传输时间就越长。
3)批次数据可以压缩,这样可以提升数据的传输和存储能力,但要做更多计算处理。
主题和分区
Kafka的消息通过主题进行分类。
1)主题就好比数据库的表,或者文件系统里的文件夹。
2)主题可以被分为若干个分区,一个分区就是一个提交日志。消息以追加的方式写入分区,然后以先入先出的顺序读取。
3)Kafka通过分区来实现数据冗余和伸缩性,分区可以分布在不同的服务器上,也就是说,一个主题可以横跨多个服务器,以此来提供比单个服务器更强大的性能。