kafka发送消息流程

配置props.put(ProducerConfig.PARTITIONER_CLASS_CONFIG, RoundRobinPartitioner.class);

java 复制代码
public Map<String,Object> producerConfigs(){
    Map<String,Object> props = new HashMap<>();
    props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,bootstrapServers);
    props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG,valueSerializer);
    props.put(ProducerConfig.PARTITIONER_CLASS_CONFIG, RoundRobinPartitioner.class);
    return props;
}

public ProducerFactory producerFactory(){
    return new DefaultKafkaProducerFactory<>(producerConfigs());
}

// 覆盖spring-kafka中的配置
@Bean
public KafkaTemplate<String,Object> kafkaTemplate(){
    return new KafkaTemplate<String,Object>(producerFactory());
}

自定义消息拦截器

java 复制代码
public class CustomerProducerInterceptor implements ProducerInterceptor<String,Object> {

    // 发送消息时,对消息拦截。
    @Override
    public ProducerRecord<String,Object> onSend(ProducerRecord producerRecord) {
        System.out.println("拦截消息" + producerRecord.toString());
        return null;
    }

    // 服务器是否收到了当前这条消息
    @Override
    public void onAcknowledgement(RecordMetadata recordMetadata, Exception e) {
        if(recordMetadata != null){
            System.out.println("服务器收到消息" + recordMetadata.offset());
        }else{
            // 没有收到消息发送失败
            System.out.println("消息发送失败!!!");
        }
    }

    @Override
    public void close() {

    }

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

    }
}
相关推荐
yumgpkpm几秒前
Hadoop、Cloudera CDH没有消亡,它是大数据的未来
人工智能·hive·hadoop·spark·kafka·开源·hbase
沧海寄馀生3 分钟前
Apache Hadoop生态组件部署分享-Hue
大数据·hadoop·分布式·apache
qq_348231855 分钟前
完整的 Spring Boot + Redisson 分布式锁示例
spring boot·分布式·后端
en-route9 分钟前
Kafka 参数配置与启动详解
分布式·kafka
5008417 分钟前
鸿蒙 Flutter 分布式安全:软总线加密通信与设备互信认证
分布式·安全·flutter·华为·架构·wpf·开源鸿蒙
怪侠Kevin18 分钟前
Seata事务集成Kafka,实现事务一致性
分布式·kafka
量子信使18 分钟前
分布式经典密钥资源池与分布式量子密钥资源池的差异分析
分布式
Hui Baby23 分钟前
Spring Cloud Gateway 核心工具类
分布式
bigdata-rookie9 小时前
数据仓库建模
大数据·分布式·spark
码以致用13 小时前
Kafka笔记
笔记·分布式·kafka