Kafka——不懂原理怎么混

Kafka生产者概览流程概述:创建一个ProducerRecord对象,需要包含topic和要发送的内容,还可以指定键或分区。在发送ProducerRecord对象时,生产者要先把键和值对象序列化成字节数组。然后数据传给分区器,如果对象中指定了分区,那分区器直接把指定的分区返回,如果没有指定,分区器会根据ProducerRecord的键选择一个分区。这条记录随后被添加到记录批次里,这个批次里的所有消息会被发送到相同的主题和分区上。最后服务器收到消息成功写入会返回一个RecordMetaData对象,包含
摘要由CSDN通过智能技术生成

Kafka生产者概览

在这里插入图片描述
流程概述: 创建一个ProducerRecord对象,需要包含topic和要发送的内容,还可以指定键或分区。在发送ProducerRecord对象时,生产者要先把键和值对象序列化成字节数组。然后数据传给分区器,如果对象中指定了分区,那分区器直接把指定的分区返回,如果没有指定,分区器会根据ProducerRecord的键选择一个分区。这条记录随后被添加到记录批次里,这个批次里的所有消息会被发送到相同的主题和分区上。最后服务器收到消息成功写入会返回一个RecordMetaData对象,包含了主题和分区信息,以及记录在分区里的偏移量。如果写入失败,就会返回错误信息,生产者收到错误后会尝试重新发送,几次之后如果还是失败就返回错误信息。

创建Kafka生产者

这里只指定了必要的属性,其他使用默认配置

private Properties kafkaProps = new Properties();
kafkaProps.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "broker1:9092,broker2:9092");
kafkaProps.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
kafkaProps.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
KafkaProducer<String, String> producer = new KafkaProducer<>(kafkaProps);
  1. 指定了broker的地址清单,建议至少提供两个broker信息,其中一个宕机,生产者仍然能够连接到集群上。
  2. 指定了消息的键和值都是String

Kafka客户端默认提供了ByteArraySerializer、StringSerializer和IntegerSerializer接口的类。

发送消息到Kafka

简单配置
ProducerRecord<String, String> record = new ProducerRecord<>("topic11", "key11
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值