Kafka客户端(2.1.0)

本文详细介绍了Kafka 2.1.0版本的客户端使用,包括生产者的普通发送、带回调、自定义分区策略和同步发送,以及消费者的简单消费、offset重置策略和手动提交offset。内容涵盖Kafka生产者和消费者的配置、操作以及性能比较。
摘要由CSDN通过智能技术生成

准备工作

要使用kafka的客户端,首先要引入Kafka客户端的依赖,下面是2.1.0版本的依赖

<dependency>
	<groupId>org.apache.kafka</groupId>
	<artifactId>kafka-clients</artifactId>
	<version>2.1.0</version>
</dependency>

Kafka的生产者,需要一个properties对象用以指定broker-list以及对应的key-value的序列号类

//创建配置对象
Properties properties = new Properties();
properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "192.168.1.115:9092,192.168.1.116:9092,192.168.1.117:9092");
properties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringSerializer");
properties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringSerializer");

生产者

先要创建生产者对象

KafkaProducer<String, String> producer = new KafkaProducer<String, String>(properties);

别忘了把生产者关闭

producer.close();

因为生产者是异步发送的,因此在生产者关闭之前最好等待一段时间,避免遗漏消息

Thread.sleep(1000);

普通生产者

普通生产者最简单,直接发送消息即可
完整例子如下

Properties properties = new Properties();
properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "192.168.1.115:9092,192.168.1.116:9092,192.168.1.117:9092");
properties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringSerializer");
properties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringSerializer");
KafkaProducer<String, String> producer = new KafkaProducer<String, String>(properties);

long b0 = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
   
	ProducerRecord<String, String> record = new ProducerRecord<String, String>("test", String.format("k%08d", i), String.format("v%08d", i));
	producer.send(record);
}
long b1 = System.currentTimeMillis();
try {
   
	Thread.sleep(1000);
} catch (InterruptedException e) {
   
	e.printStackTrace();
}
System.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值