Skip to content

v.1.8.0-beta.1

Pre-release
Pre-release
Compare
Choose a tag to compare
@Gsantomaggio Gsantomaggio released this 18 Dec 09:33
· 38 commits to main since this release
v1.8.0-beta.1
d5cdce4

Enhancements

Bug Fixes

  • Fix connections to a server on different locales by @Noonlord in #329

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:

Screenshot 2023-12-18 at 10 18 05

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