Kafka自定义分区器编写教程

1.创建java类MyPartitioner并实现Partitioner接口

点击灯泡选择实现方法,导入需要实现的抽象方法

2.实现方法

3.自定义分区器的使用

在自定义生产者消息发送时,属性配置上加入自定义分区器

properties.put(ProducerConfig.PARTITIONER_CLASS_CONFIG,"com.ljr.kafka.producer.MyPartitioner");

4.运行

可以看到数据按照分区器的设定进入指定的分区

5.完整代码
java 复制代码
package com.ljr.kafka.producer;

import org.apache.kafka.clients.producer.Partitioner;
import org.apache.kafka.common.Cluster;

import java.util.Map;

public class MyPartitioner implements Partitioner {

    @Override
    public int partition(String topic, Object key, byte[] keyBytes, Object value, byte[] valueBytes, Cluster cluster) {
        
		//获取数据
        String data = value.toString();
        
		//定义分区
        int partition;
        
        if(data.contains("kafka")){
            partition = 0;
        }else{
            partition = 1;
        }
        
        return partition;
    }

    @Override
    public void close() {

    }

    @Override
    public void configure(Map<String, ?> configs) {

    }
}
相关推荐
小小小米粒1 小时前
重置本地git
大数据·git·elasticsearch
梦想画家1 小时前
SQLMesh 告警落地实践:SQL 模型跑挂了,如何自动发邮件并推送自建业务系统
大数据·数据开发·sqlmesh
大大大大晴天1 小时前
每天认识一个组件:Apache Calcite
大数据
adinnet20261 小时前
保单、赔付与渠道问数:保险经营数据如何实现按需查询
大数据·数据库·人工智能
组工部管理能手李哥3 小时前
政务办公场景下,私有化知识库+智能体方案的技术实践与思考
大数据·人工智能
此时不提桶,更待何时3 小时前
06-12-A-Kafka存储深水区与源码解析详解
分布式·kafka·linq
anxiao_m4 小时前
水利数字孪生怎么选?主流可视化渲染平台深度横向测评
大数据·前端·人工智能·图形渲染·云渲染
用户3610588626124 小时前
Flink Time 之时间语义深度剖析:从 Processing Time 到 Event Time 与 Watermark 机制
大数据·flink
梦想画家4 小时前
SQLMesh 宏实现循环完全指南:@EACH、Python 宏与 SQLGlot 表达式实战
大数据·数据开发·sqlmesh
跨境联盟5 小时前
行业思考|精准营养会成为社区健康驿站的核心竞争力吗?
大数据·人工智能·健康医疗·健康管理·精准营养