Releases: rabbitmq/rabbitmq-stream-go-client
v1.5.0-beta.1
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.QueueSize
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
Bug Fixes
Thanks a lot to @hiimjako for helping with this version
Full Changelog: v1.4.11...v1.5.0-beta.1
v1.4.11
What's Changed
Please read before updating.
This version focuses on performances for BatchSend
and the Consumer side.
We changed the default TCP Parameters see below. The old parameters can be restored with: SetReadBuffer(65536)
and SetNoDelay(false)
Enhancements
- Improve batch send performances #366
- Add the latency info on perftest #363
- Restored the pertTest docker build image. Here: pivotalrabbitmq/go-stream-perf-test
- Change the default TCP parameter to 8192 for TCP Read and Write and Disable Nagle's algorithm
Bug Fix
- Adapt the heartbeat checker to the configuration #361
Full Changelog: v1.4.10...v1.4.11
v1.4.10
What's Changed
Enhancements
- Improve the producer creation step by @Gsantomaggio in #352
- check super stream creation by @Gsantomaggio in #355
Full Changelog: v1.4.9...v1.4.10
v1.4.9
v1.4.8
What's Changed
Bug Fixes
- Check version when serverProperties is not empty and < 3.11.0 by @Gsantomaggio in #345
Full Changelog: v1.4.7...v1.4.8
v1.4.7
What's Changed
Enhancements
- Reduce
minBatchPublishingDelay
to 1ms by @hiimjako in #333 - Add BatchSend to HA Producer by @hiimjako in #334
Bug Fixes
- pkg/stream: fix the error that could occur due to nil option by @bailantaotao in #331
- fix offset of single active consumer reset to 0 by @Darthmineboy in #336
- Fix the reconnection logic for parallel writes with HA Producer. by @hiimjako in #335
- Fix flush interval by @Darthmineboy in #338
Documentation
New Contributors
- @bailantaotao made their first contribution in #331
- @Darthmineboy made their first contribution in #336
Full Changelog: v1.4.6...v1.4.7
v1.4.6
Milestone
Enhancements
- Bump github.com/spf13/cobra from 1.8.0 to 1.8.1 by @dependabot in #316
- Improve the message log by @Gsantomaggio in #319
- Force localhost when lookup the metadata by @Gsantomaggio in #317
- Add manual commit for super stream consumer by @Gsantomaggio in #323
Deprecation
- Deprecate
LastConsumed
method by @Gsantomaggio in #324
The method does not indicate the last message consumed of the stream but the last stored offset.
The method was added to help the user but created confusion.env.QueryOffset(consumerName, streamName)
should be used,
like:
offset, err := env.QueryOffset(consumerName, streamName)
/// you may need to do offset+1 to restart from the next message
consumer, err := env.NewConsumer(streamName, handleMessages, stream.
NewConsumerOptions().
SetManualCommit().
SetOffset(stream.OffsetSpecification{}.Offset(offset)).SetConsumerName(consName),
)
Full Changelog: v1.4.5...v1.4.6
v.1.4.5
Milestone
Enhancements
- Expose the RPC TImeout call by @Gsantomaggio in #313
- Bump github.com/klauspost/compress from 1.17.8 to 1.17.9 by @dependabot in #314
Bug Fixes
- Fix multi uris connection by @Gsantomaggio in #310
Full Changelog: v1.4.4...v1.4.5
v1.4.4
Milestone
Bug Fixes
- change the default value for
last_stored_offset
by @Gsantomaggio in #307
Full Changelog: v1.4.3...v1.4.4
v1.4.3
Milestone
Enhancements
- Add auto-commit to the super stream consumer by @Gsantomaggio in #305
Deprecation
environment.StreamStats.LastOffset()
is now deprecated.
The method name may be misleading. It does not indicate the last offset of the stream. It indicates the last uncommitted chunk id. This information is not necessary. The user should use CommittedChunkId()
.
Full Changelog: v1.4.2...v1.4.3