草庐IT

kafka-stream

全部标签

Spring-Kafka 3.0 消费者消费失败处理方案

一、背景我们作为Kafka在使用Kafka是,必然考虑消息消费失败的重试次数,重试后仍然失败如何处理,要么阻塞,要么丢弃,或者保存二、设置消费失败重试次数1默认重试次数在哪里看Kafka3.0版本默认失败重试次数为10次,准确讲应该是1次正常调用+9次重试,这个在这个类可以看到org.springframework.kafka.listener.SeekUtils2如何修改重试次数据我的实验,spring-kafka3.0版本通过application.yml配置是行不通的,也没有找到任何一项配置可以改重试次数的(网上很多说的通过配置spring.kafka.consumer.retries可

java - 通过 Streams 并行执行多个查询

我有以下方法:publicStringgetResult(){ListserversList=getServerListFromDB();ListappList=getAppListFromDB();ListuserList=getUserFromDB();returngetResult(serversList,appList,userList);}在这里,我依次调用三个方法,依次访问数据库并获取结果,然后对从数据库访问中获得的结果进行后处理。我知道如何通过使用Threads同时调用这三种方法。但我想使用Java8ParallelStream来实现这一点。有人可以指导我如何通过并行流实

java - 具有解码器问题的 Kafka Avro 消费者

当我尝试运行KafkaConsumerwithAvro时在我各自模式的数据上,它返回错误“AvroRuntimeException:Malformeddata.Lengthisnegative:-40”。我看到其他人也有类似的问题convertingbytearraytojson,Avrowriteandread,和KafkaAvroBinary*coder.我也引用了这个ConsumerGroupExample,这些都有帮助,但到目前为止对这个错误没有帮助。它一直工作到这部分代码(第73行)解码器decoder=DecoderFactory.get().binaryDecoder(b

springboot、spring-kafka、kafka-client的版本对应关系

在使用springboot集成kafka的时候需要注意springboot版本、引用的依赖spring-kafka版本和kafka中间件版本的对应关系,否则可能会因为版本不兼容导致出现错误。1、含义说明(摘自官网)SpringBoot:是springboot的版本。SpringforApacheKafkaVersion:是springboot集成的spring-kafka的版本,如org.springframework.kafkaspring-kafka2.6.8springIntegrationforApacheKafkaVersion:是springboot集成的spring-integr

Kafka-消费者-KafkaConsumer分析-offset操作

提交offset在进行消费者正常消费过程中以及Rebalance操作开始之前,都会提交一次offset记录Consumer当前的消费位置。提交offset的功能也是由ConsumerCoordinator实现的。先来了解OffsetCommitRequest和OffsetCommitResponse的消息体格式,如图所示。OffsetCommitRequest中各个字段的含义如表所示。OffsetCommitResponse中各个字段的含义如表所示。图展示了ConsumerCoordinator中与提交offset相关的四个方法以及它们之间的调用关系。在SubscriptionState中使用

java - Kafka 0.9 如何在使用 KafkaConsumer 手动提交偏移量时重新使用消息

我正在编写一个消费者,一旦将一系列记录提交给Mongo,它就会手动提交偏移量。在出现Mongo错误或任何其他错误的情况下,会尝试将记录保存到错误处理集合中以便日后重播。如果Mongo宕机,那么我希望消费者在尝试从Kakfa的未提交偏移量中读取记录之前停止处理一段时间。下面的示例有效,但我想知道这种情况的最佳做法是什么?while(true){booleancommit=false;try{ConsumerRecordsrecords=consumer.poll(consumerTimeout);kafkaMessageProcessor.processRecords(records);

java - 如何在kafka 0.9.0中使用多线程消费者?

kafka的文档给出了一个关于以下描述的方法:OneConsumerPerThread:Asimpleoptionistogiveeachthreaditsownconsumer>instance.我的代码:publicclassKafkaConsumerRunnerimplementsRunnable{privatefinalAtomicBooleanclosed=newAtomicBoolean(false);privatefinalCloudKafkaConsumerconsumer;privatefinalStringtopicName;publicKafkaConsumerR

Java 8 流 IllegalStateException : Stream has already been operated on or closed

我正在尝试使用StreamAPI生成Order实例。我有一个创建订单的工厂函数,一个DoubleStream用于初始化订单金额。privateDoubleStreamdoubleStream=newRandom().doubles(50.0,200.0);privateOrdercreateOrder(){returnnewOrder(doubleStream.findFirst().getAsDouble());}@Testpublicvoidtest(){StreamorderStream=Stream.generate(()->{returncreateOrder();});or

java - 使用 Collection.stream 按特定属性动态分组

我正在尝试使用Java8Collection-Stream按多个属性对对象列表进行分组。这很好用:publicclassMyClass{publicStringtitle;publicStringtype;publicStringmodule;publicMyClass(Stringtitle,Stringtype,Stringmodule){this.type=type;this.title=title;this.module=module;}}Listdata=newArrayList();data.add(newMyClass("1","A","B"));data.add(new

09、Kafka ------ 通过修改保存时间来删除消息(retention.ms 配置)

目录通过修改保存时间来删除消息★删除指定主题的消息演示1、修改kafka检查过期消息的时间间隔2、修改主题下消息的过期时间3、查看修改是否生效4、先查看下主题下有没有消息5、添加几条消息看效果6、查看消息是否被删除★恢复主题的retention.ms配置1、先查看没修改前的test2主题的配置信息:2、将test2主题下的消息的保存时间删除。3、再查看修改后的test2主题的配置信息:通过修改保存时间来删除消息★删除指定主题的消息Kafka并没有提供直接删除特定主题下消息的方法,只能是强制让消息过期之后,再来删除消息。因此需要指定如下两个配置:控制将指定主题下消息的保存时间设为一个很短时间:r