Skip to content

Latest commit

 

History

History
284 lines (199 loc) · 10.7 KB

ChangeLog.md

File metadata and controls

284 lines (199 loc) · 10.7 KB

go-nsq Change Log

1.1.0 - 2021-10-25

  • #275/#281 - support separate Logger for each log level (thanks @crazyweave)
  • #282 - consumer: reduce duplicate RDY (ready) count updates (thanks @andyxning)
  • #283 - remove redundant Config initialized check (thanks @SwanSpouse)
  • #313 - add Authorization header to lookup queries
  • #321 - consumer: fix panic with some invalid lookupd http addresses (thanks @martin-sucha)
  • #317 - producer: connect() code-style improvement (thanks @martin-sucha)
  • #330 - fix random backoff jitter on 32-bit architectures
  • #333 - consumer: re-use http client with keepalives for lookupd requests (thanks @JieTrancender)
  • #336 - producer: shutdown logging prefix consistent with other logging (thanks @karalabe)
  • #294 - docs: fix producer example (thanks @nikitabuyevich)
  • #307 - docs: add exit signal handling to consumer example
  • #324 - docs: fix Consumer.SetLogger() description (thanks @gabriel-vasile)
  • #297 - add AUTHORS file
  • #329/#330 - switch to GitHub Actions for CI

1.0.8 - 2019-12-24

Thanks to @judwhite, @vitaliytv, and @HaraldNordgren for contributing to testing and dependency management improvements

  • #248 - support go modules
  • #249 - consumer: update RDY when setting MaxInFlight to 0
  • #267 - check response message size is positive (thanks @andyxning)
  • #271 - godoc for publisher and consumer (thanks @skateinmars)
  • #270 - set log level (thanks @YongHaoWu)
  • #255 - go vet tls.Config copying (thanks @iaburton)

1.0.7 - 2017-08-04

Upgrading from 1.0.6: There are no backward incompatible changes.

  • #97/#209 - consumer: retry nsqlookupd queries
  • #179/#208 - consumer: redistribute RDY when connections are active
  • #184/#201 - producer: fix misleading Stop() EOF (thanks @mengskysama)
  • #203 - switch to golang/snappy (addressing potential snappy related deadlocks)
  • #202 - consumer: fix backoff logging

1.0.6 - 2016-06-04

Upgrading from 1.0.5: There are no backward incompatible changes.

  • #175 - consumer: reduce garbage generation in DecodeMessage (thanks @Dieterbe)
  • #162 - producer: support DeferredPublish (thanks @DanielHeckrath)

1.0.5 - 2015-09-19

Upgrading from 1.0.4: There are no backward incompatible changes.

  • #156 - consumer: prevent data race on RNG
  • #155 - config: support flag.Value interface
  • #147/#150 - consumer: fix application of max_backoff_duration (thanks @judwhite)
  • #138 - fix lint, vet, fmt issues
  • #137 - remove go-simplejson dependency

1.0.4 - 2015-04-07

Upgrading from 1.0.3: There are no backward incompatible changes.

  • #133 - fix ErrNotConnected race during Producer connection (thanks @jeddenlea)
  • #132 - fix RDY redistribution after backoff with no connections
  • #128 - fix backoff stall when using RequeueWithoutBackoff
  • #127 - fix handling of connection closing when resuming after backoff (thanks @jnewmano)
  • #126 - allow BackoffStrategy to be set via flag (thanks @twmb)
  • #125 - add pluggable consumer BackoffStrategy; add full-jitter strategy (thanks @hden)
  • #124 - add DialTimeout and LocalAddr config (thanks @yashkin)
  • #119 - add Producer.Ping() method (thanks @zulily)
  • #122 - refactor log level string handling
  • #120 - fix Message data races on responded
  • #114 - fix lookupd jitter having no effect (thanks @judwhite)

1.0.3 - 2015-02-07

Upgrading from 1.0.2: There are no backward incompatible changes.

  • #104 - fix reconnect address bug (thanks @ryanslade)
  • #106 - fix backoff reconnect deadlock (thanks @ryanslade)
  • #107 - fix out-of-bounds error when removing nsqlookupd addresses (thanks @andreas)
  • #108 - fix potential logger race conditions (thanks @judwhite)
  • #111 - fix resolved address error in reconnect loop (thanks @twmb)

1.0.2 - 2015-01-21

Upgrading from 1.0.1: There are no backward incompatible changes.

  • #102 - TLS min/max config defaults (thanks @twmb)
  • #99 - fix Consumer.Stop() race and Producer.Stop() deadlock (thanks @tylertreat)
  • #92 - expose Message.NSQDAddress
  • #95 - cleanup panic during Consumer.Stop() if handlers are deadlocked
  • #98 - add tls-min-version option (thanks @twmb)
  • #93 - expose a way to get Consumer runtime stats (thanks @dcarney)
  • #94 - allow #ephemeral topic names (thanks @jamesgroat)

1.0.1 - 2014-11-09

Upgrading from 1.0.0: There are no backward incompatible changes functionally, however this release no longer compiles with Go 1.0.x.

  • #89 - don't spam connection teardown cleanup messages
  • #91 - add consumer DisconnectFrom*
  • #87 - allow heartbeat_interval and output_buffer_timeout to be disabled
  • #86 - pluggable nsqlookupd behaviors
  • #83 - send RDY before FIN/REQ (forwards compatibility with nsqio/nsq#404)
  • #82 - fix panic when conn isn't assigned
  • #75/#76 - minor config related bug fixes
  • #75/#77/#78 - add tls-cert and tls-key config options

1.0.0 - 2014-08-11

Upgrading from 0.3.7: The public API was significantly refactored and is not backwards compatible, please read UPGRADING.

  • #58 - support IDENTIFY msg_timeout
  • #54 - per-connection TLS config and set ServerName
  • #49 - add common connect helpers
  • #43/#63 - more flexible nsqlookupd URL specification
  • #35 - AUTH support
  • #41/#62 - use package private RNG
  • #36 - support 64 character topic/channel names
  • #30/#38/#39/#42/#45/#46/#48/#51/#52/#65/#70 - refactor public API (see UPGRADING)

0.3.7 - 2014-05-25

Upgrading from 0.3.6: There are no backward incompatible changes. THIS IS THE LAST STABLE RELEASE PROVIDING THIS API. Future releases will be based on the api in #30 and will not be backwards compatible!

This is a bug fix release relating to the refactoring done in 0.3.6.

  • #32 - fix potential panic for race condition when # conns == 0
  • #33/#34 - more granular connection locking

0.3.6 - 2014-04-29

Upgrading from 0.3.5: There are no backward incompatible changes.

This release includes a significant internal refactoring, designed to better encapsulate responsibility, see #19.

Specifically:

  • make Conn public
  • move transport responsibilities into Conn from Reader/Writer
  • supply callbacks for hooking into Conn events

As part of the refactoring, a few additional clean exit related issues were resolved:

  • wait group now includes all exit related goroutines
  • ensure that readLoop exits before exiting cleanup
  • always check messagesInFlight at readLoop exit
  • close underlying connection last

0.3.5 - 2014-04-05

Upgrading from 0.3.4: There are no backward incompatible changes.

This release includes a few new features such as support for channel sampling and sending along a user agent string (which is now displayed in nsqadmin).

Also, a critical bug fix for potential deadlocks (thanks @kjk for reporting and help testing).

New Features/Improvements:

  • #27 - reader logs disambiguate topic/channel
  • #22 - channel sampling
  • #23 - user agent

Bug Fixes:

  • #24 - fix racey reader IDENTIFY buffering
  • #29 - fix recursive RLock deadlocks

0.3.4 - 2013-11-19

Upgrading from 0.3.3: There are no backward incompatible changes.

This is a bug fix release, notably potential deadlocks in Message.Requeue() and Message.Touch() as well as a potential busy loop cleaning up closed connections with in-flight messages.

New Features/Improvements:

  • #14 - add Reader.Configure()
  • #18 - return an exported error when an nsqlookupd address is already configured

Bug Fixes:

  • #15 - dont let handleError() loop if already connected
  • #17 - resolve potential deadlocks on Message responders
  • #16 - eliminate busy loop when draining finishedMessages

0.3.3 - 2013-10-21

Upgrading from 0.3.2: This release requires NSQ binary version 0.2.23+ for compression support.

This release contains significant Reader refactoring of the RDY handling code paths. The motivation is documented in #1 however the commits in #8 identify individual changes. Additionally, we eliminated deadlocks during connection cleanup in Writer.

As a result, both user-facing APIs should now be considerably more robust and stable. Additionally, Reader should behave better when backing off.

New Features/Improvements:

  • #9 - ability to ignore publish responses in Writer
  • #12 - Requeue() method on Message
  • #6 - Touch() method on Message
  • #4 - snappy/deflate feature negotiation

Bug Fixes:

  • #8 - Reader RDY handling refactoring (race conditions, deadlocks, consolidation)
  • #13 - fix Writer deadlocks
  • #10 - stop accessing simplejson internals
  • #5 - fix max-in-flight race condition

0.3.2 - 2013-08-26

Upgrading from 0.3.1: This release requires NSQ binary version 0.2.22+ for TLS support.

New Features/Improvements:

  • #227 - TLS feature negotiation
  • #164/#202/#255 - add Writer
  • #186 - MaxBackoffDuration of 0 disables backoff
  • #175 - support for nsqd config option --max-rdy-count
  • #169 - auto-reconnect to hard-coded nsqd

Bug Fixes:

  • #254/#256/#257 - new connection RDY starvation
  • #250 - nsqlookupd polling improvements
  • #243 - limit IsStarved() to connections w/ in-flight messages
  • #169 - use last RDY count for IsStarved(); redistribute RDY state
  • #204 - fix early termination blocking
  • #177 - support broadcast_address
  • #161 - connection pool goroutine safety

0.3.1 - 2013-02-07

Upgrading from 0.3.0: This release requires NSQ binary version 0.2.17+ for TOUCH support.

  • #119 - add TOUCH command
  • #133 - improved handling of errors/magic
  • #127 - send IDENTIFY (missed in #90)
  • #16 - add backoff to Reader

0.3.0 - 2013-01-07

Upgrading from 0.2.4: There are no backward incompatible changes to applications written against the public nsq.Reader API.

However, there are a few backward incompatible changes to the API for applications that directly use other public methods, or properties of a few NSQ data types:

nsq.Message IDs are now a type nsq.MessageID (a [16]byte array). The signatures of nsq.Finish() and nsq.Requeue() reflect this change.

nsq.SendCommand() and nsq.Frame() were removed in favor of nsq.SendFramedResponse().

nsq.Subscribe() no longer accepts shortId and longId. If upgrading your consumers before upgrading your nsqd binaries to 0.2.16-rc.1 they will not be able to send the optional custom identifiers.

  • #90 performance optimizations
  • #81 reader performance improvements / MPUB support

0.2.4 - 2012-10-15

  • #69 added IsStarved() to reader API

0.2.3 - 2012-10-11

  • #64 timeouts on reader queries to lookupd
  • #54 fix crash issue with reader cleaning up from unexpectedly closed nsqd connections

0.2.2 - 2012-10-09

  • Initial public release