Releases: apache/pulsar-client-go
Releases · apache/pulsar-client-go
v0.8.1
What's Changed
- Upgrade beefsack/go-rate by @shubham1172 in #735
- Upgrade prometheus client to 1.11.1 by @nicoloboschi in #738
New Contributors
- @shubham1172 made their first contribution in #735
- @nicoloboschi made their first contribution in #738
Full Changelog: v0.8.0...v0.8.1
v0.8.0
What's Changed
- Update release docs with missing information by @cckellogg in #656
- Update change log for 0.7.0 release by @cckellogg in #655
- Update version to 0.7.0 by @cckellogg in #654
- fix issue 650,different handle sequence value by @baomingyu in #651
- Support nack backoff policy for SDK by @wolfstudy in #660
- Remove unused dependency in
oauth2
module by @reugn in #661 - [Issue 662] Fix race in connection.go waitUntilReady() by @bschofield in #663
- Update dependencies by @reugn in #665
- [Issue 652] Quick fixes to the documentation for the main building blocks of the library by @reugn in #667
- Add subscription properties for ConsumerOptions by @wolfstudy in #671
- Add new bug-resistant build constraints by @reugn in #670
- Handle the parameters parsing error in NewProvider by @reugn in #673
- Update email template of release docs by @izumo27 in #674
- Add properties filed for batch container by @wolfstudy in #683
- [Issue 513] Correct apparent logic error in batchContainer's hasSpace() method by @bschofield in #678
- Upgrade DataDog/zstd to v1.5.0 by @dferstay in #690
- fix:add order key to message by @leizhiyuan in #688
- Set default go version to 1.13 in CI related files by @reugn in #692
- [Partition Consumer] Provide lock-free access to compression providers by @dferstay in #689
- Use a separate gorutine to handle the logic of reconnect by @wolfstudy in #691
- [DefaultRouter] add a parallel bench test by @dferstay in #693
- Revert "Use a separate gorutine to handle the logic of reconnect" by @wolfstudy in #700
- Fix data race while accessing connection in partitionProducer by @wolfstudy in #701
- Fix stuck when reconnect broker by @wolfstudy in #703
- Fix slice bounds out of range for readSingleMessage by @wolfstudy in #709
- Encryption failure test case fix by @GPrabhudas in #708
- [DefaultRouter] fix unnecessary system clock reads due to races accessing router state by @dferstay in #694
- Fix negative WaitGroup counter issue by @wolfstudy in #712
- [issue 675] oauth2 use golang-jwt address CVE-2020-26160 by @zzzming in #713
- readme: add note about how to build and test by @pgier in #714
- Bump oauth2 package version to the latest in master by @iorvd in #715
- Fix closed connection leak by @billowqiu in #716
- [Bugfix] producer runEventsLoop for reconnect early exit by @billowqiu in #721
- [issue 679][oauth2] Fix macos compiler warnings by @pgier in #719
- [optimize] Stop batchFlushTicker when Disable batching by @Shoothzj in #720
- Markdown error fix by @Shoothzj in #722
New Contributors
- @bschofield made their first contribution in #663
- @izumo27 made their first contribution in #674
- @pgier made their first contribution in #714
- @iorvd made their first contribution in #715
- @billowqiu made their first contribution in #716
Full Changelog: v0.7.0...v0.8.0-candidate-1
v0.7.0
Feature
- Encryption support for producer, see PR-560
- Decrytion support for consumer, see PR-612
- User-defined metric cardinality, see PR-604
- Better support for Azure AD OAuth 2.0, see PR-630, PR-633, PR-634
- Removed testing for go versions 1.11 and 1.12, see PR-632
- Add epoch to create producer to prevent a duplicate producer when broker is not available., see PR-582
Improve
- Fix batch size limit validation, see PR-528
- Fix logic of command for sendError, see PR-622
- Drain connection requests channel without closing, see PR-645
- Fix ConsumersOpened counter not incremented when use multitopic or regexp consumer, see PR-619
- Fix reconnection logic when topic is deleted, see PR-627
- Fix panic when scale down partitions, see PR-601
- Fix missing metrics for topics by registration of existing collector, see PR-600
- Fix producer panic by oldProducers, see PR-598
- Fail pending messages when topic is terminated, see PR-588
- Fix handle send error panic, see PR-576
v0.6.0
Feature
- Make PartitionsAutoDiscoveryInterval configurable, see PR-514.
- Always check connection close channell, before attempting to put requests, see PR-521.
- Add
LedgerId,EntryId,BatchIdx,PartitionIdx
func for MessageId interface, see PR-529. - Add DisableReplication to Producer Message, see PR-543.
- Updating comments to conform to golang comment specification, see PR-532.
- Producer respects Context passed to Send() and SendAsync() when applying backpressure, see PR-534.
- Simplify connection close logic, see PR-559.
- Add open tracing to pulsar go client, see PR-518.
- Update proto file, see PR-562.
- Add send error logic for connection, see PR-566.
- Add license file for depend on libs, see PR-567.
Improve
- Update jwt-go dependency to resolve vulnerabilities, see PR-524.
- Fixed Athenz repository name, see PR-522.
- Fix reader latest position, see PR-525.
- Fix timeout guarantee for RequestOnCnx, see PR-492.
- Fix nil pointer error with GetPartitionedTopicMetadata, see PR-536.
- Release locks before calling producer consumer response callbacks, see PR-542.
- Fix lookup service not implemented GetTopicsOfNamespace, see PR-541.
- Regenerate the certs to work with Pulsar 2.8.0 and Java 11, see PR-548.
- Fix race condition when resend pendingItems, see PR-551.
- Fix data race while accessing connection in partitionConsumer, see PR-535.
- Fix channel data race, see PR-558.
- Fix write to closed channel panic() in internal/connection during connection close, see PR-539.
- Fix possible race condition in connection pool, see PR-561.
- Fix default connection timeout, see PR-563.
- Add lock for compressionProviders to fix data race problem, see PR-533.
- Fix send goroutine blocked, see PR-530.
Release 0.5.0
Fixes
- #465 Reverted datadog to DataDog
- #499 Fix range channel deadlock error
- #509 Add sentAt when put item into pendingQueue
- #474 Fix race condition/goroutine leak in partition discovery goroutine
- #494 Close cnxPool when closing a Client
- #478 Move GetPartitionedTopicMetadata to lookup service
- #470 Fix unexpected nil pointer when reading item from keyring
- #467 Fix reader with start latest message id inclusive
Improvements
v0.4.0
Feature
- Support send timeout in Producer side, see PR-394.
- Add metric for internal publish latency, see PR-397.
- Add key_based Batch logic, see PR-363.
- Add error label to publish errors metric, see PR-405.
- Add const client label to metrics, see PR-406.
- Attach topic and custom labels to Prometheus metrics, see PR-410.
- Add orderingKey apis, see PR-427.
- Support jwt and trusted cert for pulsar perf client, see PR-427.
Improve
- Fix bot action CI yaml file, see PR-395.
- Update go-keyring to v1.1.6 to remove warnings on MacOS Catalina+ , see PR-404.
- Read the clock fewer times during message routing, see PR-372.
- Close dangling autoDiscovery goroutine in consumer, see PR-411.
- Fix discard unacked messages, see PR-413.
- Fixed logic to attempt reconnections to same broker, see PR-414.
- Reduce the default TCP connection timeout from 30 to 5 seconds, see PR-415.
- Removed unused
import "C"
statement, see PR-416. - Renamed
Metrics.RpcRequestCount
toRPCRequestCount
to conform to style check, see PR-417. - Fix leaked nack tracker goroutine, see PR-418.
- Clearing message queues after seek requests, see PR-419.
- Fix retry policy not effective with partitioned topic, see PR-425.
- Deduplicate user provided topics before using them, see PR-426.
- The
reader.HasNext()
returns true on empty topic, see PR-441. - Upgrade
gogo/protobuf
to 1.3.2, see PR-446. - Fix
logrusWrapper
shrink interfaces slice into an interface, see PR-449. - Logging what really caused lookup failure, see PR-450.
- Make state thread safe in consumer_partition and connection, see PR-451.
- Fix
KeyFileTypeServiceAccount
not found compile error, see PR-455. - Fix unsubscribe blocked when consumer is closing or has closed, see PR-457.
- The asynchronized send timeout checking without pending queue lock, see PR-460.
v0.3.0
Feature
- Support retry letter topic in Go client, see PR-359.
- Support limit the retry number of reconnectToBroker, see PR-360.
- Support key shared policy in Go client, see PR-363.
- Add schema logic in producer and consumer, see PR-368.
Improve
- Fix panic on receiverQueueSize set to
-1
, see PR-361. - Fix may lead to panic test case, see PR-369.
- Send delay message individually even batching is enabled, see PR-372.
- Fixed buffer resize when writing request on connection, see PR-374.
- Fixed deadlock in DLQ ack processing, see PR-375.
- Fix deadlock when connection closed, see PR-376.
- Fix producer deadlock after write failure, see PR-378.
- Fix maxMessageSize not effective even if aligned with broker, see PR-381.
- Update default router to switch partition on all batching thresholds, see PR-383.
- Replaced
github.com/DataDog/zstd
withgithub.com/datadog/zstd
, see PR-385. - Fix retry policy not effective with non-FQDN topics, see PR-386.
v0.2.0
Feature
- Expose BatchingMaxSize from ProducerOptions, see PR-280.
- Allow applications to configure the compression level, see PR-290.
- Support producer name for Message, see PR-299.
- Support oauth2 authentication for pulsar-client-go, see PR-313.
- Add interceptor feature for Go client, see PR-314.
- Export client metrics to Prometheus, see PR-317.
- Add Name method to Consumer interface, see PR-321.
- Add oauth2 to the provider, see PR-338.
- Support specified the oauth2 private key with prefix
file://
anddata://
, see PR-343. - Fix the keyfile unmarshal error, see PR-339.
- Add a new method to create auth provider from tls cert supplier, see PR-347.
- Add seek logic for reader, see PR-356.
Improve
- Use .asf.yaml to configure github repo, see PR-216.
- Auto update the client to handle changes in number of partitions, see PR-221.
- Clean callbacks of connection after run loop stopped, see PR-248.
- Fix unable to close consumer after unsubscribe in Shared Subscription, see PR-283.
- Introduced lifecycle for compression providers, see PR-284.
- Use maxPendingMessages for sizing producer eventsChan, see PR-285.
- Avoid contention on producer mutex on critical path, see PR-286.
- Switched to DataDog zstd wrapper, reusing the compression ctx, see PR-287.
- Fix panic when creating consumer with ReceiverQueueSize set to -1, see PR-289.
- Used pooled buffering for compression and batch serialization, see PR-292.
- Use gogofast to have in-place protobuf serialization, see PR-294.
- Added semaphore implementation with lower contention, see PR-298.
- Fixed pooled buffer lifecycle, see PR-300.
- Removed blocking queue iterator, see PR-301.
- Fix panic in CreateReader API using custom MessageID for ReaderOptions, see PR-305.
- Change connection failed warn log to error and print error message, see PR-309.
- Share buffer pool across all partitions, see PR-310.
- Add rerun feature test command to repo, see PR-311.
- Fix CompressMaxSize() for ZLib provider, see PR-312.
- Reduce the size of the MessageID structs by one word on 64-bit arch, see PR-316.
- Do not allocate MessageIDs on the heap, see PR-319.
- Different MessageID implementations for message Production and Consumption, see PR-324.
- Fix producer block when the producer with the same id, see PR-326.
- Get the last message when LatestMessageID and inclusive, see PR-329.
- Fix go.mod issue with invalid version, see PR-330.
- Fix producer goroutine leak, see PR-331.
- Fix producer state by reconnecting when receiving unexpected receipts, see PR-336.
- Avoid producer deadlock on connection closing, see PR-337.
v0.1.1
Improve
- Fixed batching flag logic
- Fix data race when accessing partition producer state
- Fixed tls connection issue
- Add flag to disable forced topic creation
- Add Athenz authentication provider
- Fixed race condition in producer Flush() operation
- Removed unnecessary flush in sync Send() operation
- Allow empty payload for nonbatch message
- Add internal connectionReader readAtLeast error information
- Fix zstd memory leak of zstdProvider
- Expose replicated from filed on message struct
- Fix send async comments
- Fix perf-produce cannot be closed
- Fix perf-producer target
- Fix fail to add batchbuilder
- skip debug print out when batch disabled with no messages
- Add check for max message size
- Build and test with multiple versions of Go
- When CGO is enabled, use C version of ZStd
- Stop partition discovery on Close
- Microbenchmark for compression
- Allow to have multiple connections per broker
- Increase writeRequestsCh channel buffer size
v0.1.0
Client
- Support
TLS
logic - Support
Authentication
logic - Support
Proxy
logic - Support
Hostname verification
logic
Producer
- Add
Send()
method inProducer
interface - Add
SendAsync()
method inProducer
interface - Add
LastSequenceID()
method inProducer
interface - Add
Flush()
method inProducer
interface - Add
Close()
method inProducer
interface - Add
Topic()
method inProducer
interface - Add
Name()
method inProducer
interface - Support
MessageRouter
logic - Support
batch
logic - Support
compression message
logic - Support
HashingScheme
logic - Support
User defined properties producer
logic
Consumer
- Add
Subscription()
method inConsumer
interface - Add
Unsubscribe()
method inConsumer
interface - Add
Receive()
method inConsumer
interface - Add
Ack()
method inConsumer
interface - Add
AckID()
method inConsumer
interface - Add
Nack()
method inConsumer
interface - Add
NackID()
method inConsumer
interface - Add
Seek()
method inConsumer
interface - Add
SeekByTime()
method inConsumer
interface - Add
Close()
method inConsumer
interface - Support
Dead Letter Queue
consumer policy - Support
Topics Pattern
andTopics
logic - Support
topic consumer regx
logic - Support
multi topics consumer
logic - Support
Exclusive
,Failover
,Shared
andKeyShared
subscribe type logic - Support
Latest
andEarliest
logic - Support
ReadCompacted
logic - Support
ReplicateSubscriptionState
logic - Support
User defined properties consumer
logic - Support
Delayed Delivery Messages
logic
Reader
- Add
Topic()
method inReader
interface - Add
Next()
method inReader
interface - Add
HasNext()
method inReader
interface - Add
Close()
method inReader
interface - Support
read compacted
logic - Support
start messageID
logic - Support
User defined properties reader
logic