v.1.8.0-beta.1
Pre-release
Pre-release
Gsantomaggio
released this
18 Dec 09:33
·
38 commits
to main
since this release
Enhancements
- Multiple Producers and Consumers per connection by @Gsantomaggio in #328
- New event to handle Metadata update by @Gsantomaggio in #332
Bug Fixes
To Read
The RabbitMQ stream protocol supports multi-producers and multi-consumers per TCP Connection.
This version introduces the connection pool for Consumers and Producers.
There is a new ConnectionPoolConfig
setting:
new StreamSystemConfig
{
ConnectionPoolConfig = new ConnectionPoolConfig()
{
ConsumersPerConnection = 10,
ProducersPerConnection = 10,
}
};
ConsumersPerConnection
== The number of consumers per connection min 1 max 255 default is 1
ProducersPerConnection
== The number of producers per connection min 1 max 255 default is 1
Each connection can handle different streams; see the image:
Performances
Sharing the same connection for multiple streams reduces the number of connections, but it could impact the performances:
- Consumer side. If one consumer is slow, it can also affect the other consumers
- Producer side: If all the producers are at full-rate, it can reduce the performances
The proper parameter depends on your environment.
Tip
You can use different StreamSystemConfig
like:
configToReduceTheConnections = new StreamSystemConfig
{
ConnectionPoolConfig = new ConnectionPoolConfig()
{
ConsumersPerConnection = 50, // high value
ProducersPerConnection = 50, // high value
}
}
configToIncreaseThePerformances = new StreamSystemConfig
{
ConnectionPoolConfig = new ConnectionPoolConfig()
{
ConsumersPerConnection = 1, // low value
ProducersPerConnection = 1, // low value
}
}
There are many combinations from 1
to 255
.
New Contributors
Full Changelog: v1.7.4...v1.8.0-beta.1