kafka杂记
1、多个消费者
多个消费者可以组成一个群组,它们共享一个消息流,并保证整个群组对每个给定的消息只处理一次。
2、broker的配置
主题的默认配置,kafka为新创建的主题提供很多默认配置参数。
2.1 主题的默认配置 message.max.bytes
broker通过设置message.max.bytes参数来限制单个消息的大小,默认值1MB。如果生产者尝试发送的消息超过这个大小,不仅消息不回被接收,还会收到broker返回的错误信息。该参数指的是压缩后的消息大小。也就是说,只要压缩后的消息小于message.max.bytes指定的值,消息的实际大小可以远大于这个值。
这个值对性能有显著影响。值越大,那么负责处理网络连接和请求的线程就需要花越多的时间来处理这些请求。它还会增加磁盘写入块的大小,从而影响IO吞吐量。
在服务端和客户端之间协调消息大小的配置
消费者客户端设置的fetch.message.max.bytes必须与服务器端设置的消息大小进行协调。如果这个值比message.max.bytes小,那么消费者就无法读取比较大的消息,导致出现消费者被阻塞的情况。在为集群里的broker配置replica.fetch.max.bytes参数时,也遵循同样的原则。
3、硬件
磁盘性能影响生产者,而内存影响消费者。
4、生产者的配置
4.1 bootstrap.servers API以及序列化器key/value
4.2 acks
acks参数指定了必须要有多少个分区副本收到消息,生产者才会认为消息