Skip to content

0.2.22

Compare
Choose a tag to compare
@mreiferson mreiferson released this 26 Aug 17:46
· 1387 commits to master since this release

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 displays inactive nodes in /nodes