草庐IT

apache-kafka-streams

全部标签

java - 停止 Kafka Streams 应用程序

是否可以有一个KafkaStreams应用程序运行一个主题中的所有数据然后退出?示例我正在根据日期将数据生成到主题中。消费者被cron启动,遍历所有可用数据,然后..做什么?我不想让它坐下来等待更多数据。假设一切都在那里,然后优雅地退出。可能吗? 最佳答案 在KafkaStreams中(对于其他流处理解决方案),没有“数据结束”,因为它首先是流处理——而不是批处理。然而,您可以观察KafkaStreams应用程序的“滞后”,如果没有滞后则将其关闭(滞后,是尚未使用的消息的数量)。例如,您可以使用bin/kafka-consumer-

java - kafka如何平衡分区负载?

我遇到了一个关于kafka负载均衡的问题。因此,我创建了一个包含10个分区的主题并创建了2个消费者。10个分区被划分并分配给这些消费者(5个分区分配给第一个,5个分区分配给第二个)并且工作正常。有时第一个消费者工作,有时第二个。但有时我们可能会遇到这样的情况,例如第二个消费者收到一条消息,并且需要时间(例如10分钟)来处理这条消息。那么,我的问题是kafka将如何决定将消息存储到哪个分区?在这种情况下,我认为循环法不是一个好主意,因为由第二个消费者处理的分区中的消息将不会被处理,直到第二个消费者完成长时间的工作。已更新!根据@MilanBaran的回答,生产者端的负载是平衡的。但在这种

java - Kafka 消费者异常和抵消提交

我一直在尝试为SpringKafka做一些POC工作。具体来说,我想尝试在Kafka中消费消息时处理错误的最佳实践。我想知道是否有人能够提供帮助:分享有关Kafka消费者应该做什么的最佳做法当出现故障时帮助我了解AckModeRecord的工作原理,以及如何在监听器方法中抛出异常时防止提交到Kafka偏移队列。2的代码示例如下:鉴于AckMode设置为RECORD,根据documentation:committheoffsetwhenthelistenerreturnsafterprocessingtherecord.如果监听器方法抛出异常,我会认为偏移量不会增加。但是,当我使用下面的

Java 8 - 从 Collection.stream.map() 调用多参数方法

我使用Java8Streams已有一段时间了。我遇到过这样一种情况,我需要通过List流式传输并将每个元素与另一个参数一起传递给静态方法。在Java8中有可能吗?........Stringdesignation="Engineer";Listnames=newArrayList();names.add("ABC");names.add("DEF");names.add("GHI");names.stream().map(MyClass::createReport);..........classMyClass{publicstaticvoidcreateReport(Stringna

java - NoClassDefFoundError - Eclipse - Apache HTTPClient

我正在尝试从eclipsejuno(jetty网络服务器)运行一个简单的基于REST的应用程序(稍后将部署在谷歌应用引擎上)这是我的代码:packageco.suhas.live;importjava.io.IOException;importjavax.servlet.http.*;importorg.apache.http.HttpResponse;importorg.apache.http.client.HttpClient;importorg.apache.http.client.methods.HttpGet;importorg.apache.http.impl.client

java - Apache HTTP BasicScheme.authenticate 已弃用?

在ApacheHTTP组件4类org.apache.http.impl.auth.BasicScheme中,我注意到该方法:publicstaticHeaderauthenticate(finalCredentialscredentials,finalStringcharset,finalbooleanproxy)已弃用,信息如下:/***ReturnsabasicAuthorizationheadervalueforthegiven*{@linkCredentials}andcharset.**@paramcredentialsThecredentialstoencode.*@par

2步窗的聚合,带有Kafka流DSL

假设我有一个由每秒1个数据点组成的流“流-1”,我想计算一个派生的流“stream-5”,该流使用5秒的跳窗口和另一个流式的“stream-10”包含总和它基于“stream-5”,其中包含10秒的跳窗口。需要分别为每个密钥完成聚合,我希望能够在不同的过程中运行每个步骤。如果Stream-5和Stream-10包含相同键/时间戳的更新,则本身并不是问题(因此我不一定需要如何发送最终的kafka-streams聚合结果,该结果是窗口窗口的ktable?)只要最后值正确。是否有一种(简单)使用高级Kafka流DSL解决此问题的方法?到目前为止,由于汇总,我还没有看到一种优雅的方式来处理Stream

java - java 8 中 stream().map() 和 stream.map({}) 的区别

这个问题在这里已经有了答案:WhenarebracesoptionalinJava8lambdasyntax?(4个答案)关闭7年前。昨天我偶然发现了一些我既不理解也找不到解释的东西:考虑以下操作:Stream.of(1,2,3).map(i->i*2).forEach(System.out::println);//Thisonewon'tcompileStream.of(1,2,3).map(i->{i*2;}).forEach(System.out::println);看来第二个可以扩展到Stream.of(1,2,3).map(i->{returni*2;}).forEach(S

51.Go操作kafka示例(kafka-go库)

文章目录一、简介二、生产者三、消费者代码地址:https://gitee.com/lymgoforIT/golang-trick/tree/master/31-kafka-go一、简介之前已经介绍过一个操作kafka的go库了,28.windows安装kafka,Go操作kafka示例(sarama库),但是这个库比较老了,当前比较流行的库是github.com/segmentio/kafka-go,所以本次我们就使用一下它。我们在GitHub直接输入kafka并带上language标签为Go时,可以可以看到当前getgithub.com/segmentio/kafka-go库是最流行的。首先

java - ifPresent Stream 的 Else 方法

这个问题在这里已经有了答案:Ifnotnull-java8style(2个答案)关闭7年前。我想知道如果在过滤流后某些值不存在时如何执行某些行为。让我们假设代码:foo.stream().filter(p->p.someField==someValue).findFirst().ifPresent(p->{p.someField=anotherValue;someBoolean=true;});我如何放置某种类型的Else在ifPresent之后如果值不存在?有一些orElse我可以在findFirst之后调用的Stream上的方法,但我看不到用那些orElse来做到这一点的方法