I'm still drawing a blank on this one.  So you have any ideas?

On Wed, Jun 21, 2023, 2:13 PM Steve973 <steve...@gmail.com> wrote:

> 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
>>
>

Reply via email to