社区
Java
帖子详情
kafka获取指定数据
HAIbing0417
2019-04-03 04:44:43
已知kafka的topic和topic下的partition,现在需要使用请求,每次请求只从指定的partition中获取第一条数据返回,这种请求需要怎么做,求指导
...全文
542
1
打赏
收藏
kafka获取指定数据
已知kafka的topic和topic下的partition,现在需要使用请求,每次请求只从指定的partition中获取第一条数据返回,这种请求需要怎么做,求指导
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
HAIbing0417
2019-04-03
打赏
举报
回复
我自己在看API文档时想到一个方法,但是不能确定这种方法的实用性,代码基本上参照https://www.jianshu.com/p/6e89db47c116这篇帖子做的修改,我的controller中的代码如下: Properties props = new Properties(); props.put("bootstrap.servers", "localhost:9092"); props.put("group.id", "group-1"); props.put("auto.offset.reset", "earliest"); //该属性用于控制单次调用 call() 方法能够返回的记录数量,可以帮你控制在轮询里需要处理的数据量 props.put("max.poll.records", 1); props.put("enable.auto.commit", "true"); props.put("auto.commit.interval.ms", "1000"); 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("testDemo")); final Thread mainThread = Thread.currentThread(); Runtime.getRuntime().addShutdownHook(new Thread() { public void run() { System.out.println("Starting exit..."); consumer.wakeup(); try { // 主线程继续执行,以便可以关闭consumer,提交偏移量 mainThread.join(); } catch (InterruptedException e) { e.printStackTrace(); } } }); try { ConsumerRecords<String, String> records = consumer.poll(1000); System.out.println("count : " + records.count()); for (ConsumerRecord<String, String> record : records) { System.out.println("topic = " + record.topic() + ", partition = " + record.partition() + ", offset = " + record.offset() + " , value:" + record.value()); } consumer.commitAsync(); } catch (WakeupException e) { // 不处理异常 } finally { consumer.commitSync(); consumer.close(); System.out.println("Closed consumer and we are done"); } 这么写目前自己测试可以每次发送请求获取一条partition中的消息,但是不能确定是否有其他问题,求各位高手指点。
kafka
消费
指定
分区
数据
创建
kafka
消费者的代码如下: 1、构建配置参数 1.1 配置bootstrap.server 参数:hadoop102:9092--------
指定
kafka
集群的地址,可以写多个,防止这个节点宕机无法运行 1.2 配置
kafka
接受的
数据
的k-v值的序列化参数 props.put("key.deserializer", "org.apache.
kafka
.common.serialization.StringDeserializer"); props.put("value...
springboot框架中使用java操作
kafka
获取
数据
因为项目里面我只写了从
kafka
获取
数据
,所以这里就贴出我的代码来供有需要的读者参考,至于如何写
kafka
的操作,只有等我研究后再写出来了.并且网上有大量的例子还是可以的第一种方法,这种方法更繁琐点.第二种相对简单点.我使用的是springboot工程引入jar包<dependency> <groupId>org.apache.
kafka
</groupId...
Kafka
系列之:读取
Kafka
Topic中的
数据
,根据
获取
的
数据
指定
Kafka
数据
的stamp、key、value,再把
数据
写入到其他
Kafka
Topic中
Kafka
系列之:读取
Kafka
Topic中的
数据
,根据
获取
的
数据
指定
Kafka
数据
的stamp、key、value,再把
数据
写入到其他
Kafka
Topic中一、明确需求二、创建
Kafka
消费者三、消费者订阅Topic,并修改消费的偏移量四、根据想要的
数据
格式
获取
数据
五、消费者完整详细注释代码如下所示六、创建
Kafka
生产者 一、明确需求 从一个
Kafka
Topic中
获取
到想要的
数据
后,再把
数据
以相同的
数据
格式写到另外一个
Kafka
Topic,要求保持
数据
格式一致,
数据
的stamp、key、valu
关于怎么
获取
kafka
指定
位置offset消息
1.在
kafka
中如果不设置消费的信息的话,一个消息只能被一个group.id消费一次,而新加如的group.id则会被“消费管理”记录,并
指定
从当前记录的消息位置开始向后消费。如果有段时间消费者关闭了,并有发送者发送消息那么下次这个消费者启动时也会接收到,但是我们如果想要从这个topic的第一条消息消费呢? public class SimpleConsumerPerSonIndex2 {
kafka
获取
指定
Topic 的 offset
/** * Producer和Consumer只于Leader交互,其余Replica作为Follower从leader中复制
数据
。 * 每个partitions都有一个server为leader,leader负责所有的读写操作,follower只负责备份 * 一个server上有一个topic的多个partitions */ public long getTopicOffset(Str...
Java
50,523
社区成员
85,601
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章