Skip to content

Added possibility to process messages for each consumer group independently#1034

Merged
yang-xiaodong merged 6 commits intodotnetcore:masterfrom
dario-l:master
Nov 5, 2021
Merged

Added possibility to process messages for each consumer group independently#1034
yang-xiaodong merged 6 commits intodotnetcore:masterfrom
dario-l:master

Conversation

@dario-l
Copy link
Contributor

@dario-l dario-l commented Nov 3, 2021

This addition do not change anything to default behavior of CAP.

To run processing messages for each consumer group independently must set option UseDispatchingPerGroup to true. This will add to DI container DispatcherPerGroup instead of default Dispatcher.

With default Dispatcher behavior of CAP is:

dispatcher default

As you can see VeryFastProcessingReceiver waits until XSlowProcessingReceiver finishes.

With DispatcherPerGroup behavior of CAP is:

dispatcher pergroup

Here we have situation where all subscribers pushes received messages to own dispatching channel. Each channel has set thread count to ConsumerThreadCount value.

New feature is used in new sample application Sample.RabbitMQ.SqlServer.DispatcherPerGroup.

@dario-l dario-l changed the title Clarifying the behavior of Subscription Group Added possibility to process messages for each group independently Nov 4, 2021
@dario-l dario-l changed the title Added possibility to process messages for each group independently Added possibility to process messages for each consumer group independently Nov 4, 2021
Copy link
Member

@yang-xiaodong yang-xiaodong left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM , Thanks

@yang-xiaodong yang-xiaodong merged commit f034c1e into dotnetcore:master Nov 5, 2021
@dario-l
Copy link
Contributor Author

dario-l commented Nov 5, 2021

Great, thanks 😃 👍🏻

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Communication between modules within monolithic application (single process)

2 participants