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 int
is 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
- Performance improvement on unconfirmed map by @hiimjako in #374
- Set TCP parameters only if they are greater than 0 by @hiimjako in #375
- Add limit to the unconfirmed messages @Gsantomaggio #378
- Close TCP connection in case of CRC fails @Gsantomaggio in #378
- Replace map with syncmap @Gsantomaggio in #377
Bug Fixes
Thanks a lot to @hiimjako for helping with this version
Full Changelog: v1.5.0-beta.1...v1.5.0-rc.1