kafka怎么用代码读取数据

Kafka可以通过Java语言中的Kafka客户端库来读取数据。以下是一个简单的Java代码示例,通过Kafka Consumer API从Kafka集群中读取数据:

java 复制代码
```java
import java.util.Properties;
import org.apache.kafka.clients.consumer.ConsumerRecords;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.apache.kafka.clients.consumer.KafkaConsumer;

public class KafkaConsumerExample {
   public static void main(String[] args) throws Exception {

      String topicName = "my-topic";
      Properties props = new Properties();
      props.put("bootstrap.servers", "localhost:9092");
      props.put("group.id", "test-group");
      props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
      props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");

      KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);
      consumer.subscribe(Arrays.asList(topicName));

      while (true) {
         ConsumerRecords<String, String> records = consumer.poll(100);
         for (ConsumerRecord<String, String> record : records) {
            System.out.printf("offset = %d, key = %s, value = %s%n", record.offset(), record.key(), record.value());
         }
      }
   }
}
```

在这个示例中,我们使用KafkaConsumer类,它是Kafka Java客户端库的一部分,从指定的主题(topic)中消费数据。我们设置了Kafka集群的地址(bootstrap.servers),将自己的消费组ID(group.id)分配给消费者,以及对键(key)和值(value)进行反序列化。在这个示例中,我们使用StringDeserializer,但您可以使用任何其他适当的序列化程序。

在while循环中,我们使用poll()方法从Kafka集群中获取消息,等待100毫秒。然后我们遍历这些消息并打印它们的偏移量、键和值。

相关推荐
alonewolf_9913 小时前
RabbitMQ快速上手与核心概念详解
分布式·消息队列·rabbitmq
陌路2013 小时前
RPC分布式通信(4)--Zookeeper
分布式·zookeeper·rpc
陌路2013 小时前
RPC分布式通信(6)---调用方自动封装请求数据、从 ZK 获取服务地址、建立 TCP 连接发送请求、接收并解析响应
分布式·tcp/ip·rpc
廋到被风吹走13 小时前
【分布式缓存】分布式缓存架构全解析:从 Redis Cluster 到多级缓存策略
分布式·缓存·架构
敏叔V5871 天前
联邦学习与大模型:隐私保护下的分布式模型训练与微调方案
分布式
短剑重铸之日1 天前
《7天学会Redis》特别篇: Redis分布式锁
java·redis·分布式·后端·缓存·redission·看门狗机制
重生之绝世牛码1 天前
Linux软件安装 —— kafka集群安装(SASL密码验证)
大数据·linux·运维·服务器·分布式·kafka·软件安装
填满你的记忆1 天前
【从零开始——Redis 进化日志|Day5】分布式锁演进史:从 SETNX 到 Redisson 的完美蜕变
java·数据库·redis·分布式·缓存
無森~1 天前
ZooKeeper
分布式·zookeeper·云原生
小北方城市网1 天前
SpringBoot 集成 MinIO 实战(对象存储):实现高效文件管理
java·spring boot·redis·分布式·后端·python·缓存