更新时间:2024-05-28 GMT+08:00

Kafka应用开发建议

同一个组的消费者的数量建议与待消费的Topic下的Partition数保持一致

若同一个组的消费者数量多于Topic的Partition数时,会有多余的消费者一直无法消费该Topic的消息,若消费者数量少于Topic的Partition数时,并发消费得不到完全体现,因此建议两者相等。

避免写入单条记录超大的数据

单条记录超大的数据在影响处理效率的同时还可能写入失败,此时需要在初始化Kafka生产者实例时根据情况调整“max.request.size ”值,在初始化消费者实例时调整“max.partition.fetch.bytes”值。

例如,参考本例,可以将max.request.size 、max.partition.fetch.bytes配置项设置为“5252880”:
         // 协议类型:当前支持配置为SASL_PLAINTEXT或者PLAINTEXT 
         props.put(securityProtocol, kafkaProc.getValues(securityProtocol, "SASL_PLAINTEXT"));
         // 服务名
         props.put(saslKerberosServiceName, "kafka");
         props.put("max.request.size", "5252880");
         // 安全协议类型
         props.put(securityProtocol, kafkaProc.getValues(securityProtocol, "SASL_PLAINTEXT"));
         // 服务名 
         props.put(saslKerberosServiceName, "kafka");
         props.put("max.partition.fetch.bytes","5252880");