
# 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");
```
