Releases: pardahlman/RawRabbit
Bugfix for subscription
Fixes a problem with subscriptions being terminated that was introduced in 1.8.8
.
- #58 - Subscribers are terminated +fix
Commits: 8b627ae...c6f928a
Performance improvement + Autofac
The first step in a refactoring has been taken. The aim is to increase thoughput by using async methods and allowing for multiple threads to publish messages.
Also, a new NuGet package, RawRabbit.DependencyInjection.Autofac
has been created.
Commits: 8b627ae...13b86c7
ConnectionString and one bug fix
In this release the ConnectionStringParser
has been polished by Originalutter. It now supports all configuration parameters available in the configuration object. There are also some nice default values, like port 5672
which can be omitted from connection string.
An KeyNotFound
issue that sometimes occurred when performing multiple request synchronous (with await
) was fixed.
- #53 - Avoid opening channels on Respond
- #50 - Unexpected connection close when multiple RPC
- #47 - Add default attributes
- #44 - Update QueueArgument with LazyQueue
- #42 - Allow connection strings without parameters
- #25 - Support more parameters to connectionString
Commits: f0d5128...09aaea5
SSL, Non-generic interface and 1x bugfix
- #39 - Introduce non-generic interface IDefaultBusClient +feature
- #36 - Guard against KeyNotFound in RequestTimer dictionary +fix
- #33 - Add support for SSL in configuration object +feature
Commits: f8ae9b4...09051dd
1.8.4
The major update in this release is the workaround for issue rabbitmq/rabbitmq-dotnet-client#153, that allows RawRabbit
to initially connect to the first specified host.
The release contains addresses the following issues and pull requests
- #31 - Fixing problem with hostlist contributed by (pardahlman)
- #30 - Work-around for rabbitmq/rabbitmq-dotnet-client#153 +fix
- #29 - Corrected typo in NamingConventions for #28 contributed by (brettnagy)
- #28 - Typo in RawRabbit.Common.NamingConvetions and INamingConvetions
Commits: 5d1a0d5...7752893
Documentation, README + minor fixes
- #23 - Add context agnostic method for BusClientFactory.CreateDefault
- #21 - Unexpected connection close when publishing multiple messages
- #15 - Corner case:
PublishAcknowledge
times out and recieves ack in parallell - #13 - Update documentation
- #12 - Move test projects to seperate folder
- #11 - IoC: Honour registered
IConnectionFactory
Commits: 308b750...970e75a
Re-implement AutoClose feature
In 1.8.0
we removed the IConnectionBroker
and by doing so we accidentally removed the AutoClose
feature. It has been re-introduced in this release
RabbitClient 3.6.0, Multiple hosts and Recovery updates
In this release, we're updating the RabbitMQ.Client
to the latest version 3.6.0
. The client has support for multiple hosts and selection strategies (rabbitmq/rabbitmq-dotnet-client#81), which has been incorporated in 1.8.0
of RawRabbit
. Previously, we used implementations of IConnectionBroker
to get a connection from any of the brokers defined in the configuration. This layer has been removed since it is no longer needed. This also gave us the follwoing changes
- New format of connectionString, since we are limited to one virtual host, username and password over all hosts.
- New format on for
RawRabbitConfiguration
object theBrokers
property has been replaced byHostnames
, a list of strings. IConnectionBroker
interface is removed
Recovering from lost connections or closed channels is now more stable, since we're listening to the Recovery
event on channels and connections and use it as a trigger for completing the async operation of receiving the channel/connection
We are also staying current with underlying serialization framework, Newtonsoft.Json
, that has been updated to 8.0.2
1x bugfix + auto close feature
This release contains support for RabbitMq AutoClose
functionality. By setting AutCloseConnection
in the the RawRabbitConfiguration
object, a connection will be closed when the last channel is closed.
The DefaultStrategy
for when unhanded exceptions are thrown in the message handler now looks if the consumer has set NoAck
to true, and in that case doesn't try to Nack the message. Nacking a message that is delivered as NoAck
caused the consumer to be shut down by RabbitMq.
Introducing error handling strategies
With version 1.6.0
of RawRabbit
, we introduce a new feature, Error Handling Strategy. It gives you the possibility to handle unhandled exceptions in the message handler. The default implementation, DefaultStrategy.cs
has the following behavior:
Nack
the message that was being handled when the exception occurred.- Propagate the exception back to the caller and re-throw it there, so that the requester (in the RPC scenario) doesn't need to wait for a time out exception due to request timeout.