我有一个如下所示的路由。此路由会定期轮询目录并读取一个大型的 .csv 文件。然后将文件拆分成每个包含 1000 行的块,并将其发送到 seda 队列(firstQueue)
。我在此 seda 队列上有 15 个并发消费者。
route.split().tokenize("\n", 1000).streaming().to("seda:firstQueue?concurrentConsumers=15").process(myProcessor).to("seda:secondQueue?concurrentConsumers=15").process(anotherMyProcessor);
1) 15并发消费者是什么意思 - 它是否意味着有15个线程从seda读取数据并将其传递给一个myProcessor
实例?或者会创建15个单独的myProcessor
实例,每个都在作用于相同的数据副本上运行?请注意,myProcessor
是一个单例,如果将其更改为原型,会发生什么。
2) 是否可能出现任何两个或多个线程选择相同的数据并将其传递给myProcessor
?还是保证没有两个线程将有相同的数据?
感谢快速回复。谢谢!