nsq v0.2.22 Release Notes

Release Date: 2013-08-26 // over 10 years ago
  • โฌ†๏ธ Upgrading from 0.2.21: message timestamps are now officially nanoseconds. The protocol docs always stated this however nsqd was actually sending seconds. This may cause some compatibility issues for client libraries/clients that were taking advantage of this field.

    ๐Ÿš€ This release also introduces support for TLS feature negotiation in nsqd. Clients can optionally ๐Ÿ‘€ enable TLS by using the appropriate handshake via the IDENTIFY command. See #227.

    Significant improvements were made to the HTTP publish endpoints and in flight message handling to โฌ‡๏ธ reduce GC pressure and eliminate memory abuse vectors. See #242, #239, and #245.

    This release also includes a new utility nsq_to_nsq for performant, low-latency, copying of an NSQ topic over the TCP protocol.

    Finally, a whole suite of debug HTTP endpoints were added (and consolidated) under the /debug/pprof namespace. See #238, #248, and #252. As a result nsqd now supports direct profiling via Go's pprof tool, ie:

    $ go tool pprof --web http://ip.address:4151/debug/pprof/heap
    

    ๐Ÿ†• New Features / Enhancements:

    • #227 - TLS feature negotiation
    • #238/#248/#252 - support for more HTTP debug endpoints
    • #256 - nsqadmin single node view (with GC/mem graphs)
    • #255 - nsq_to_nsq utility for copying a topic over TCP
    • #230 - nsq_to_http takes --content-type flag (thanks @michaelhood)
    • #228 - nsqadmin displays tombstoned topics in the /nodes list
    • #242/#239/#245 - reduced GC pressure for inflight and /mput

    ๐Ÿ› Bug Fixes:

    • #260 - tombstone_topic_producer action in nsqadmin missing node info
    • #244 - fix 64bit atomic alignment issues on 32bit platforms
    • #251 - respect configured limits for HTTP publishing
    • #247 - publish methods should not allow 0 length messages
    • #231/#259 - persist nsqd metadata on topic/channel changes
    • #237 - fix potential memory leaks with retained channel references
    • #232 - message timestamps are now nano
    • #228 - nsqlookupd/nsqadmin would display inactive nodes in /nodes list
    • #216 - fix edge cases in nsq_to_file that caused empty files