NSQ v1.2.1 Release Notes

Release Date: 2021-08-15 // over 2 years ago
  • โฌ†๏ธ Upgrading

    • #1227 - bump dependencies, officially drop dep support, drop Go 1.9 support

    ๐Ÿ”‹ Features:

    • #1347 - nsqadmin: switch to go:embed for static assets
    • #1355 / #1364 - arm64 builds (thanks @danbf)
    • #1346 - nsqd: ability to skip ephemeral topics/channels in statsd output
    • #1336 / #1341 / #1343 - nsqd: ability to configure auth endpoint path (thanks @tufanbarisyildirim)
    • #1307 - remove Context to use stdlib context
    • #1295 / #1296 - switch to GitHub Actions CI
    • #1292 - nsqd: minimize allocations on message send (thanks @imxyb)
    • #1289 - optimize uniq (thanks @donutloop)
    • #1230 / #1232 - nsqd: ability to omit memory stats from /stats (thanks @creker)
    • #1226 - nsqd: only update internal RDY count for client when it changes (thanks @andyxning)
    • #1221 / #1363 - test against more recent versions of Go
    • #1209 - nsqd: bump go-diskqueue (interface change) (thanks @bitpeng)
    • #1206 - prefer idiomatic sort.Ints over sort.Sort (thanks @lelenanam)
    • #1197 / #1362 - Dockerfile: update Alpine base image, use /data by default
    • #1178 - nsqd: configurable queue scan worker pool (thanks @andyxning)
    • #1159 - nsqd: don't buffer messages when --mem-queue-size=0 (thanks @bitpeng)
    • #1073 / #1297 - nsqd: support separate broadcast ports for TCP and HTTP (thanks @shyam-king)

    ๐Ÿ› Bugs:

    • #1347 - nsqadmin: fix graphite key for ephemeral topics/channels
    • #765 / #1195 / #1203 / #1205 - fix build on illumos (thanks @i-sevostyanov)
    • #1333 - fix race detector tests on non-bash shells
    • #1330 - fix log_level support in configuration file (thanks @edoger)
    • #1319 / #1331 / #1361 - nsqd: handle SIGTERM
    • #1287 - nsqadmin: fix --proxy-graphite support (thanks @fanlix)
    • #1270 / #1271 - nsqlookupd: fix incorrect error message for HTTP listener (thanks @TangDH03)
    • #1264 - fix benchmark script
    • #1251 / #1314 / #1327 - nsqd: fix live lock for high churn ephemeral topic/channel reconnections (thanks @slayercat)
    • #1237 - Dockerfile: add nsswitch.conf to ensure go resolver uses /etc/hosts first
    • #1217 / #1220 - nsqd: improve error message when --data-path does not exist (thanks @mdh67899)
    • #1198 / #1190 / #1262 - synchronize close of all connections on Exit (thanks @benjsto)
    • #1188 / #1189 - nsqadmin: fix channel delete, fix source-maps in Firefox (thanks @avtrifanov)
    • #1186 - nsqadmin: fix nodes list with ipv6 addresses (thanks @andyxning)

Previous changes from v1.2.0

  • Upgrading

    • ๐Ÿ“‡ #1055 - nsqd: removed support for old metadata scheme used in v0.3.8 and earlier
      • you cannot upgrade directly from v0.3.8 to v1.2.0, you must go through v1.0.0-compat or v1.1.0
    • #1115 - manage dependencies with go modules
      • dep support still present for now, but deprecated

    ๐Ÿ”‹ Features:

    • 0๏ธโƒฃ #1136 - nsqd: add --max-channel-consumers (default unlimited) (thanks @andyxning)
    • 0๏ธโƒฃ #1133 - nsqd: add --min-output-buffer-timeout (default 25ms) to limit how low a timeout a consumer can request
      • and raise default --max-output-buffer-timeout to 30 seconds (lower timeout, more cpu usage)
    • #1127 - nsqd: add topic total message bytes to stats (thanks @andyxning)
    • 0๏ธโƒฃ #1125 - nsqd: add flag to adjust default --output-buffer-timeout (thanks @andyxning)
    • #1163 - nsqd: add random load balancing for authd requests (thanks @shenhui0509)
    • #1119 - nsqd: include client TLS cert CommonName in authd requests
    • #1147 - nsq_to_file: include topic/channel in most log messages
    • #1117 - nsq_to_file: add --log-level and --log-prefix flags
    • #1117/#1120/#1123 - nsq_to_file: big refactor, more robust file switching and syncing and error handling
    • #1118 - nsqd: add param to /stats endpoint to allow skipping per-client stats (much faster if many clients)
    • #1118 - nsqadmin, nsq_stat: use include_clients param for /stats for a big speedup for big clusters
    • #1110 - nsq_to_file: support for separate working directory with --work-dir (thanks @mccutchen)
    • #856 - nsqadmin: add --base-path flag (thanks @blinklv)
    • #1072 - nsq_to_http: add --header flag (thanks @alwindoss)
    • #881 - nsqd: add producer client tcp connections to stats (thanks @sparklxb)
    • #1071/#1074 - nsq_to_file: new flag --sync-interval (default same as previous behavior, 30 seconds) (thanks @alpaker)

    ๐Ÿ› Bugs:

    • #1153 - nsqd: close connections that don't send "magic" header (thanks @JoseFeng)
    • ๐Ÿ‘ #1140 - nsqd: exit on all fatal Accept() errors - restart enables better recovery for some conditions (thanks @mdh67899)
    • ๐Ÿ”จ #1140 - nsqd, nsqlookupd, nsqadmin: refactor LogLevel, general refactor to better exit on all fatal errors
    • #1140 - nsqadmin: switch to using judwhite/go-svc like nsqd and nsqadmin do
    • #1134 - nsqadmin: fix clients count and channel total message rate (new bugs introduced in this cycle)
    • #1132 - nsqd, nsqlookupd, nsqadmin: fix http error response unreliable json serialization
    • #1116 - nsqlookupd: fix orphaned ephemeral topics in registration DB
    • #1109 - nsqd: fix topic message mis-counting if there are backend write errors (thanks @SwanSpouse)
    • โšก๏ธ #1099 - nsqlookupd: optimize /nodes endpoint, much better for hundreds of nsqd (thanks @andyxning)
    • #1085 - switch GOFLAGS to BLDFLAGS in Makefile now that GOFLAGS is automatically used by go
    • ๐Ÿ‘• #1080 - nsqadmin: eslint reported fixes/cleanups