5.2.0 (2020-09-08)
Acknowledgments
Thank you to our developer community members who helped to make the Event Hubs client libraries better with their contributions to this release:
- Daniel Marbach (GitHub)
Changes
Key Bug Fixes
-
The underlying AMQP library has been enhanced for more efficient resource usage; this will result in a noticeable reduction in memory use in common consuming scenarios. (A community contribution, courtesy of danielmarbach)
-
All clients will now perform an eager validation of connection strings upon creation. Previously, validation was performed just before a service operation in some scenarios which made debugging difficult.
-
An additional level of resilience was added to some corner case scenarios where establishing an AMQP link failed with what may be a transient issue.
-
Fixed an issue where failure to create an AMQP link would lead to an AMQP session not being explicitly closed, causing connections to the Event Hubs service to remain open until a garbage collection pass was performed.
New Features
-
The
EventProcessor<TPartition>
now supports a configurable strategy for load balancing, allowing control over whether it claims ownership of partitions in a balanced manner (default) or more aggressively. The strategy may be set in theEventProcessorOptions
when creating the processor. More details about strategies can be found in the associated documentation. -
The
EventHubConsumerClient
pipeline for reading events from a single partition was reworked to improve efficiency and make use of the new configuration options forPrefetchCount
andCacheEventCount
. -
The
ReadEventOptions
used with theEventHubConsumerClient
now support setting aPrefetchCount
andCacheEventCount
for performance tuning. More details about each can be found in the associated documentation. -
Logging for the core send and receive operations against the Event Hubs service can now be correlated by an
OperationId
in the logs and detail the number of retries attempted for the operation. -
Connection strings for each of the clients now supports a
SharedAccessSignature
token, allowing a pre-generated SAS to be used for authorization.