Kafka-13.实现-

5.1 网络层

网络层是一个相当直接的NIO服务器,不再详细描述。 sendfile的实现是通过给MessageSet接口提供writeTo方法来完成的。这允许file-backed的消息集使用更高效的transferTo实现而不是进程内缓冲写入。线程模型是单个接受器线程和N个处理器线程,每个线程处理固定数量的连接。这种设计在其他地方经过了相当全面的测试,发现它易于实现且速度快。协议一直非常简单,以便将来使用其他语言实现客户端。

5.2 消息

消息由可变长度头,可变长度不透明密钥字节数组和可变长度不透明值字节数组组成。标题的格式将在下一节中介绍。保留密钥和值不透明是正确的决定:目前在序列化库上取得了很大进展,任何特定的选择都不太适合所有用途。毋庸置疑,使用Kafka的特定应用程序可能会强制使用特定的序列化类型作为其使用的一部分。 RecordBatch接口只是消息的迭代器,具有用于批量读取和写入NIO通道的专用方法。

5.3 消息格式

消息(即记录)始终批量写入。 消息的批次的专业术语是一个记录批次,而记录批次包含一个或多个记录。 在退化的情况下,我们可能有一个包含单个记录的记录批次。 记录批次和记录都有自己的头部。 每种格式如下所述。

你可能感兴趣的:(Kafka-13.实现-)