引言
kafka是一个高吞吐量的分布式消息系统,它可以支持处理实时数据,提供实时数据。kafka的设计之初就是注重吞吐量的提升,它的高性能,高可吞吐量以从这么以下几点去讨论:
①分区;
②网络传输上减少开销;
③顺序读写:
④零拷贝技术;
⑤优秀的文件存储机制;
分区
kafka是个分布式集群的系统,整个系统可以包含多个broker,也就是多个服务器实例。每个主题topic会有多个分区,kafka将分区均匀地分配到整个集群中,当生产者向对应主题传递消息,消息通过负载均衡机制传递到不同的分区以减轻单个服务器实例的压力。如下图所示:
一个Consumer Group中可以有多个consumer,多个consumer可以同时消费不同分区的消息,大大的提高了消费者的并行消费能力。但是一个分区中的消息只能被一个Consumer Group中的一个consumer消费。
网络传输上减少开销
批量发送:
在发送消息的时候,kafka不会直接将少量数据发送出去,否则每次发送少量的数据会增加网络传输频率,降低网络传输效率。kafka会先将消息缓存在内存中,当超过一个的大小或者超