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) {

    }
}
相关推荐
mftang13 小时前
EtherCAT协议:从“飞读飞写”机制到分布式时钟同步的实时以太网架构深度解析
分布式·架构·ethercat·分布式时钟·从站控制器
ShineWinsu17 小时前
对于Redis:Hash类型的解析
c++·redis·分布式·缓存·面试·hash·哈希表
东方芷兰19 小时前
Agent 技术摘要 03 —— 基座模型、推理模型、Flash、联邦学习、分布式机器学习
人工智能·分布式·机器学习
程序猿乐锅20 小时前
【黑马点评 | 第十一篇】关注 Feed 流实现
java·数据库·redis·分布式·后端·缓存·maven
ly768921 小时前
ISR 收缩与 HW 推进:副本同步的边界条件与 UnderReplicated 排障
数据库·kafka·c#·linq·isr·hw·副本同步
j7~1 天前
【C++标准项目】C++基于protobuf的发布订阅式消息队列(篇一):项目概述+环境搭建
分布式·消息队列·rabbitmq·gtest·protobuf·muduo·sqlites
今年下半年2 天前
【Spring Boot】多种存储文件(FastDFS / MinIO / 阿里云 OSS)接入设计说明(附源码)
spring boot·分布式·中间件·简单工厂模式·策略模式
ShineWinsu2 天前
对于Redis:string类型的解析
java·c++·redis·分布式·缓存·面试·string
仍然.2 天前
RabbitMQ---可靠性传输
网络·分布式·rabbitmq
灯澜忆梦2 天前
【RabbitMQ #13】 | 延迟消息
分布式·rabbitmq·ruby