Kafka之--生产者入门
前言:
Kafka诞生至今,产生两个版本的生产者客户端:1是早期基于scala语言编写的客户端;2是随着Java用户的广泛涌入,kafka0.9版本开始退出Java版本的客户端;
一个基本生产者producer逻辑需要具备以下基本条件:
-
- 配置Producer,创建生产者实例;
- 构建待发送消息;
- 发送消息;
- 关闭生产者实例;
KafkaProducer必要参数配置:
-
bootstrap.servers:待连接的broker地址;
- key.serializer和value.serializer:kafka中的消息都需要转化为字节数组byte[]进行传递,一般会使用到改参数指定key和value的序列化方式。对应的服务端的参数配置中需要有反序列化参数配置,他们是对应的。
KafkaProducer是线程安全的,可以在多个线程中共享单个KafkaProducer实例,或者进行池化,这样方便了使用。在实际使用中,可以通过Java配置方式,在项目启动时进行生产端的初始化,生成对应的实例即可。
KafkaProducer发送消息:
kafka消息的发送需要通过构建ProducerRecoder对象来实现,该类的属性有:
private final String topic; private final Integer partition; private final Headers headers; private final K key; private final V value; private final Long timestamp;
其中,最简的一种使用只需要指定topic和消息体即可。`ProducerRecord<String, String> record = new ProducerRecord<>(topic, "hello, Kafka!");
`