需求
Flume+Kafka集成,将不同级别的日志生产到Kafka Topic不同的Partition中
解决方案
在源码中找到kafkasink,为其添加所需要的分区逻辑
//部分代码
Integer partitionId = null;
try {
ProducerRecord<String, byte[]> record;
if (staticPartitionId != null) {
partitionId = staticPartitionId;
}
//Allow a specified header to override a static ID
if (partitionHeader != null) {
String headerVal = event.getHeaders().get(partitionHeader);
if (headerVal != null) {
partitionId = Integer.parseInt(headerVal);
}
}
/******我实际只写了这几行代码,指定partitionid******/
String type=headers.get("type");
if(type.equals("INFO")){
partitionId=0;
}else if(type.equals("DEBUG")){
partitionId=1;
}else if(type.equals("WARN")){
partitionId=2;
}else if(type.equals("ERROR")){
partitionId=