0.2.22
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 innsqadmin
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