标签: spring-batch-stream

使用 Spring Cloud Stream kafka 动态更改实例索引

类似于:在运行时更改 spring-cloud-stream 实例索引/计数

我在微服务器架构中启动批处理时做了一个 poc,我正在使用 Spring Batch 和 Spring Cloud Stream Kafka。我正在寻找一种方法来动态创建消费者(处理器)应用程序的多个实例。我看到可以定义多个实例

spring.cloud.stream.instanceCount=n 
spring.cloud.stream.instanceIndex=[0, ..., n-1]
Run Code Online (Sandbox Code Playgroud)

但是我还没有找到动态改变 instanceIndex 值的方法。是否可以使用 Spring Cloud Stream kafka 动态修改此值。

谢谢你的帮助。

apache-kafka spring-boot apache-kafka-streams spring-kafka spring-batch-stream

5
推荐指数
1
解决办法
87
查看次数

我们可以使用 spring Batch 顺序处理多个文件,同时使用多个线程处理单个文件数据..?

我想按顺序处理多个文件,并且每个文件都需要在多个线程的帮助下处理,因此使用了 Spring Batch FlatFileItemReader 和 TaskExecutor,它似乎对我来说工作得很好。正如需求中提到的,我们必须处理多个文件,因此我与 FlatFileItemReader 一起使用 MultiResourceItemReader ,它将获取多个文件并在我遇到问题时一一处理。有人可以帮我看看异常的原因是什么吗?修复它的方法是什么?

org.springframework.batch.item.ReaderNotOpenException: Reader must be open before it can be read.
   at org.springframework.batch.item.file.FlatFileItemReader.readLine(FlatFileItemReader.java:195) ~[spring-batch-infrastructure-3.0.5.RELEASE.jar:3.0.5.RELEASE]
   at org.springframework.batch.item.file.FlatFileItemReader.doRead(FlatFileItemReader.java:173) ~[spring-batch-infrastructure-3.0.5.RELEASE.jar:3.0.5.RELEASE]
   at org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader.read(AbstractItemCountingItemStreamItemReader.java:88) ~[spring-batch-infrastructure-3.0.5.RELEASE.jar:3.0.5.RELEASE]
   at org.springframework.batch.item.file.MultiResourceItemReader.readFromDelegate(MultiResourceItemReader.java:140) ~[spring-batch-infrastructure-3.0.5.RELEASE.jar:3.0.5.RELEASE]
   at org.springframework.batch.item.file.MultiResourceItemReader.readNextItem(MultiResourceItemReader.java:119)
Run Code Online (Sandbox Code Playgroud)

客户2.csv

200,Zoe,Nelson,1973-01-12 17:19:30
201,Vivian,Love,1951-10-31 08:57:08
202,Charde,Lang,1967-02-23 12:24:26
Run Code Online (Sandbox Code Playgroud)

客户3.csv

400,Amelia,Osborn,1972-05-09 09:21:22
401,Gemma,Finch,1989-09-25 23:00:59
402,Orli,Slater,1959-03-30 15:54:32
403,Donovan,Beasley,1986-06-18 14:50:30
Run Code Online (Sandbox Code Playgroud)

客户4.csv

600,Zelenia,Henson,1982-07-03 03:28:39
601,Thomas,Mathews,1954-11-21 20:34:03
602,Kevyn,Whitney,1984-09-21 06:24:25
603,Marny,Leon,1984-06-10 21:32:09
604,Jarrod,Gay,1960-06-22 19:11:04
Run Code Online (Sandbox Code Playgroud)

客户5.csv

800,Imogene,Lee,1966-10-19 17:53:44
801,Mira,Franks,1964-03-08 09:47:43
802,Silas,Dixon,1953-04-11 01:37:51
803,Paloma,Daniels,1962-06-14 17:01:02
Run Code Online (Sandbox Code Playgroud)

我的代码:

@Bean
public MultiResourceItemReader<Customer> multiResourceItemReader() {

    System.out.println("In multiResourceItemReader");
    MultiResourceItemReader<Customer> reader …
Run Code Online (Sandbox Code Playgroud)

java spring spring-batch spring-batch-stream spring-batch-tasklet

5
推荐指数
1
解决办法
4025
查看次数