What's Changed
Please read before updating.
This version focuses on stability during the reconnection and introduces the dynamic send.
There are no breaking changes, but deprecations:
BatchPublishingDelay intis not used anymore.QueueSizeis not used anymore
Dynamic send
Dynamic send improves the latency when the traffic is low, for example, with 50 msg per second, there is ~3ms latency:
go run perftest.go --rate 50 --async-send
Published 42.9 msg/s | Confirmed 42.9 msg/s | Consumed 42.9 msg/s | Rate Fx: 50 | Body sz: 8 | latency: 3 ms
Published 43.8 msg/s | Confirmed 43.8 msg/s | Consumed 43.8 msg/s | Rate Fx: 50 | Body sz: 8 | latency: 3 ms
Published 44.4 msg/s | Confirmed 44.4 msg/s | Consumed 44.4 msg/s | Rate Fx: 50 | Body sz: 8 | latency: 3 ms
Published 45.0 msg/s | Confirmed 45.0 msg/s | Consumed 45.0 msg/s | Rate Fx: 50 | Body sz: 8 | latency: 2 ms
With the 1.4.x is~ 90ms (the aggregation timeout)
go run perftest.go --rate 50 --async-send
Published 44.4 msg/s | Confirmed 44.4 msg/s | Consumed 44.4 msg/s | Rate Fx: 50 | Body sz: 8 | latency: 88 ms
Published 45.0 msg/s | Confirmed 45.0 msg/s | Consumed 45.0 msg/s | Rate Fx: 50 | Body sz: 8 | latency: 89 ms
Published 45.5 msg/s | Confirmed 45.5 msg/s | Consumed 45.5 msg/s | Rate Fx: 50 | Body sz: 8 | latency: 90 ms
Enhancements
- Update to Golang 1.22
- Update the readers and random function deprecated
- Introduce the dynamic send in #367
- Increase the stability during the reconnection for Reliable Producers and Reliable Consumers in #367 and #371
Bug Fixes
Thanks a lot to @hiimjako for helping with this version
Full Changelog: v1.4.11...v1.5.0-beta.1