记录一下大无语事件,今天看尚硅谷的kafka自定义分区器,结果自己编写得分区器kafka一直接收不到数据,idea里也终端没有语句输出,找了好久才发现问题。
自定义分区器代码:
import org.apache.kafka.clients.producer.Partitioner;
import org.apache.kafka.common.Cluster;
import java.util.Map;
public class MyPartition implements Partitioner {
public int partition(String topic, Object key, byte[] keyBytes, Object value,
byte[] valueBytes, Cluster cluster) {
// 获取消息
String myValue = value.toString();
// 创建 partition
int partition;
if (myValue.contains("test")){
partition = 0;
}else {
partition = 1;
}
// 返回分区号
return partition;
}
// 关闭资源
public void close() {
}
// 配置方法
public void configure(Map<String, ?> configs) {
}
}
主方法: