Releases: nats-io/nats-streaming-server
Releases · nats-io/nats-streaming-server
Release v0.8.0-beta
Changelog
Go Version
- 1.9.3: Both release executables and Docker images are built with this Go release.
Added
- Clustering feature. This is a beta release. We may change the protobuf if required.
Note that you cannot move from standalone to clustering with an existing store or
clients running (#434).
Complete Changes
Release v0.7.2
Changelog
Go Version
- 1.9.3: Both release executables and Docker images are built with this Go release.
Fixed
- SQL Store: After all messages expired and if the server is restarted, the first sequence
of the new message is 1 less than it should be (#456) - FT Standby may fail to start in Channels Partitioning mode (#458)
- FileStore.Init() implementation. This issue had no consequence for the server (#460)
Complete Changes
Release v0.7.0
Changelog
Go Version
- 1.9.2: Both release executables and Docker images are built with this Go release.
Added
- SQL Store with support for MySQL and Postgres. This store can be used in FT mode too (#417, #438)
- ClientID in monitor subscriptions. Thanks to @ripienaar for the suggesting (#444)
Improved
Changed
- FT Standby no longer exit on error trying to get exclusive lock. Thanks to @savaki for the report (#447)
Fixed
- Typos, thanks to @savaki, @romainjanvier (#420, #433)
- Possible race between connect and pub/sub in channels partitioning mode (#445)
Complete Changes
Release v0.6.0
Changelog
Go Version
- 1.9.1
Added
Improved
- Channels partitioning behavior on NATS cluster topology change (#368)
- Stalled queue subscriptions (#378)
- FileStore: closes files on recovery to reduce need of file descriptors (#391)
Changed
- Store interface. The change is only for developers implementing their own store implementation (#339, #341, #346)
- Debug/Trace statements related to subscriptions (#348)
- FileStore.Recover() no longer closing store on error (#384)
Updated
- Readme with example on how to use JSONP for monitoring (#406)
Fixed
- Ensure executables are statically linked (#334)
- Use of single config file with TLS section (#336)
- FileStore’s could panic in GetSequenceFromTimestamp. Thanks @klrkdekira for the report (#345)
- Closing of all channels stores on Recover() error (#352)
- Override of NATS related command line parameters (#354)
- Duplicate subscription in Channel(s) monitoring endpoint (#356)
- Possible panic on FileStore.Close() when message expiration is set (#366)
- Queue redelivery on startup (#377)
- Stalled queue member may stall the whole queue (#376)
- After restart, server sends messages to offline durables (#382)
- Monitoring of offline durable queue subscription. Thanks to @bruth for the report (#386)
- Override of options from configuration file(s) (#388)
- Server was not rejecting
/
in channel names. Thanks to @tvalletta for the report (#404)
Complete Changes
Release v0.5.0
Changelog
Added
- FileStore can now recover channels in parallel (#300)
- Signal handler SIGUSR1 for log rotation (#303)
- Channels Partitioning (#285)
- Ability to combine NATS Streaming and NATS Server options in same configuration file (#312)
- Monitoring through http endpoints (#317)
Improved
- Error returned to client for invalid client ID (#306)
Changed
- Do not include version in executable file in release uploads (#295)
- Channel limit can now be higher than corresponding global limit (#297)
Fixed
- Unable to set a per-channel limit if global limit was set to 0 (#293)
- Possible endless loop in message expiration if clock drifts backward. Thanks to @vl409 for the report (#319)
- Server panics when more than one shadow queue subscriber is recovered (#329)
Complete Changes
Release v0.4.0
Changelog
This new release adds support for Fault Tolerance, relying on shared storage (such as NFS, etc…). Check some of the important changes for users that are or want to work on a store implementation.
Added
- Ability to specify a pool of internal subscriptions that receive messages acknowledgement. Normally, the server creates an internal subscription for each user’s subscription, which may cause scalability issues (#254)
- FileStore: option to limit the number of file descriptors (#249)
- Fault Tolerance with use of shared storage (#270)
- Ability to specify sizes as bytes (KB, MB, etc..) for command line parameters (#277)
Changed
RunServer()
andRunServerWithOpts()
now return an error if the server failed to start instead of panic’ing (#264)
Updated
- Use Go 1.7.5 for the release (#267)
- Vendors (#286)
- README has a new section about Concepts. Check the table of contents
- When a subscription is created, the server will now start delivering of available messages in a different go routine. This reduces risk of clients getting a timeout when starting a great number of subscriptions with lots of pending messages at once (#253)
- Logging prefix is changed from
STAN
toSTREAM
(#274)
Fixed
- Messages possibly delivered before a
SubscriptionResponse
protocol was sent to clients. This manifested in the Node.js streaming client (#247) - Debug statements for subscription close and unsubscribe were reversed (#255)
- On durable restart, unacknowledged messages are not redelivered before new messages (#262)
- Negative store limits were not rejected on startup (#278)
- Wildcards in channels configuration were not rejected on startup (#281)
- The
—file_slice_max_age
command line parameter was not parsed as a duration (#284)
Complete Changes
Release v0.3.8
Changelog
Updated
- Redelivery constraints for queue group. The server no longer checks the possible missed heartbeat from the queue member’s connection that is having its unacknowledged messages redelivered (#224)
Fixed
- Possible panic during file store cache eviction (#222)
- Unable to send messages (and subscription immediately marked as stalled) if subscription request contains MaxInflight lower or equal to 0. The server now checks and returns an error if the value is less than 1 (#227)
- Corrupted PubAck sent back to client if Guid (or error) is more than 32 bytes (#232)
- Messages’ timestamp possibly not increasing monotonically (due to NTP, leap second, user changing clock, ...) (#233)
- Access to client’s object possibly blocked for ClientHBTimeout duration (#235)
- Repeated message redelivery not honoring subscriber’s AckWait (#238)
Complete Changes
Release v0.3.6
Changelog
Added
- Ability to configure server-to-client heartbeat settings (#219)
Fixed
- Durable queue subscribers not removed from store when leaving the group.
This would create “ghost” queue members after a server restart (if using
file-based store), which would incorrectly consume messages preventing
real queue members to receive them. (#218)
Complete Changes
Release v0.3.4
Changelog
Added
- FileStore: file slices configuration, including script for archiving (#201)
- Support for Subscription.Close() to close a subscriber without unsubscribing it (#203)
Updated
- Build with Go 1.7.4 (#208)
- StartAtSequence and StartAtTimeDelta no longer fail if out of range (#194)
- Redelivery is now always forced (#200)
- FileStore: message caching strategy (#206)
Improved
Fixed
- Durables were not properly removed on Unsubscribe (#181)
- Possible processing of protocols out of order (#207)
- Expiration timer runaway when some but not all messages expired (#204)
- Prevent unrecognized sub commands in command line parameters (#209)
- Some typos and debug/trace statements (#193)
Removed
- FileStore: command line parameter
-file_cache
and related configuration parameters (#201)
Complete Changes
Release v0.3.0
Changelog
Added
- Durable Queue Subscribers. A queue group can now be made durable. Check https://github.com/nats-io/go-nats-streaming#durable-queue-groups
- FileStore implementation now uses index files to speed-up recovery
- Ability to disable message caching to reduce memory footprint (previous implementation kept messages in memory after being persisted)
- FileStore buffers shrink when possible to reduce memory footprint in the presence of many channels
- Store limits can now be set to unlimited using 0 as a value
- The Streaming server now supports its own configuration file. Check https://github.com/nats-io/nats-streaming-server#configuring
- The maximum age limit is now enforced
- The server will now print to its log the reason of a startup failure before the panic
Updated
- The server now enforces message limits after a restart (for FileStore)
- README.md is updated with configuration and command line parameters usage
- Vendor are updated
Improved
- Performance for message delivery
Fixed
- Reduce/eliminate risk of write of partial records
- Incorrect Duplicate durable subscription after server restart
- Stopped redelivery for durables stopped while in a stalled state
- Possible panic on server shutdown if messages were being published (only for FileStore)
- Possible stall or redelivery of messages after a file compaction
- Non durable subscriptions were not removed from FileStore on connection close
- Possible stall of (re)delivery when messages are removed from the log
- FileStore behavior when using very low limits (<5 messages, etc..)
- FileStore issues when limits are reduced from one run to another