Kafka 的数据单元被称为消息,消息由字节数组组成。
为了提高效率,消息被分批次写入 Kafka,批次就是一组消息,这些消息属于同一个主题和分区。
如果每个消息都要进行网络传输,会导致大量的网络开销,把消息分成批次传输可以减少网络开销。
但是分成批次传输会增加网络延迟,压缩批次数据也需要做更多的计算处理。
Kafka 的消息通过主题进行分类。
主题可以被分成若干个分区,一个分区就是一个提交日志。消息以追加的方式写入分区,以先入先出的顺序读取。
-
优点:实现数据的冗余和伸缩性。一个主题可以跨越多个服务器,以此来提供比单个服务器更强大的性能。
-
缺点:无法在整个主题范围内保证消息的顺序,但可以保证消息在单个分区内的顺序。