Thanks for replying. I have tried 4.0.0 and 3.20.6. On Wed, Jun 21, 2023, 7:08 AM Otavio Rodolfo Piske <angusyo...@gmail.com> wrote:
> Hi, > > What version of Camel are you using? > > Other than that, not much to share other than to say that this sounds > suspiciously similar to the behavior of the flaky core tests I have been > trying to investigate the source. > > Kind regards > > On Tue, Jun 20, 2023 at 11:39 PM Steve973 <steve...@gmail.com> wrote: > > > Hello. I am writing a better spring boot example project for the dynamic > > router eip component, and I am seeing some strange results when I route > one > > million messages in a somewhat fast manner. I am generating numbers > from 1 > > to 1000000 and I have three routing participants: > > one accepts all numbers > > one accepts even numbers > > one accepts all odd numbers > > > > The total received count is accurate at 1000000, but the "all numbers" > > participant is some quantity below 1000000. Let's say that quantity is > > 50. Then, the "odd numbers" participant has some quantity over 500000, > and > > the "even numbers" participant has some quantity over 500000. The > strange > > thing is that the sum of the overages equals the difference between > 1000000 > > and the count received from the "all numbers" participant. In the case > of > > this example, it would equal the 50 missing "all numbers" count. > > > > This is an error of about 0.005%, so I am at a loss with how I can figure > > out what is going wrong in relatively *very* few cases. Can anyone lend > > some advice about what might be going on? I am generating numbers like > > this: > > > > IntStream.rangeClosed(1, 1000000) > > .boxed() > > .map(String::valueOf) > > .forEach(sendNumberMessage); > > > > The sendNumberMessage looks like this: > > > > private final Consumer<String> sendNumberMessage = (n) -> > > producerTemplate.send( > > commandUri, ExchangeBuilder.anExchange(camelContext) > > .withHeader(KafkaConstants.KEY, n) > > .withHeader("command", PROCESS_NUMBER_COMMAND) > > .withHeader("number", n) > > .withBody(n) > > .build()); > > > > As you can see, this is all running through Kafka, but I have done a > > similar test in the component code itself, while using a single JVM and > the > > "direct" endpoint, and the counts will still be slightly off. > > > > I'd appreciate any pointers that any of you might have. Thanks in > advance! > > > > Steve > > > > > -- > Otavio R. Piske > http://orpiske.net >