pulsar-client-go

Apache Pulsar Go Client Library

APACHE-2.0 License

Stars
653
Committers
147

Bot releases are hidden (Show)

pulsar-client-go - v0.13.1 Latest Release

Published by RobertIndie 2 months ago

  • [fix] Avoid a data race when flushing with load by Gaylor Bosson in #1261
  • [fix] Prevent panic when calling Flush on closed producer by Gaylor Bosson in #1260
  • [fix] Producer close was blocked by Zixuan Liu in #1249
  • [ci] Validate multiple version builds and use golangci-lint-action by Zixuan Liu in #1250
  • [fix] Fix pulsar admin revoke subscription permission endpoint by 码斯克 in #1251
  • [fix] failTimeoutMessages cannot delete outdated messages by Zixuan Liu in #1247
  • [fix] Oauth2 Client credentials flow use scopes from the keyfile as well by Nikolaj Lund Sørensen in #1244
  • [fix] Fix the key-based batch can't guarantee the ordering when flushing by Zike Yang in #1252

Full Changelog: https://github.com/apache/pulsar-client-go/compare/v0.13.0...v0.13.1

pulsar-client-go - v0.13.0

Published by RobertIndie 3 months ago

Important notice

  • The avro schema codec has been changed from github.com/linkedin/goavro/v2 to github.com/hamba/avro/v2.
  • pulsar.NewSchemaDefinition has been removed. Use pulsar.NewAvroSchema instead.
  • The client has dropped support for Go 1.18 and 1.19. The minimum supported version is now Go 1.20.

What's Changed

New Contributors

pulsar-client-go - v0.12.1

Published by RobertIndie 7 months ago

What's Changed

  • [fix] Fix Infinite Loop in Reader's HasNext Function by @RobertIndie in #1182
  • [fix] Fix available permits in MessageReceived by @panszobe in #1181
  • [feat] Support partitioned topic reader by @RobertIndie in #1178
  • [fix] Fix BytesSchema by @petermnhull in #1173
  • [fix] Respect context cancellation in Flush by @jayshrivastava in #1165
  • [fix] Fix SIGSEGV with zstd compression enabled by @RobertIndie in #1164
pulsar-client-go - v0.12.0

Published by RobertIndie 9 months ago

What's Changed

New Contributors

pulsar-client-go - v0.11.1

Published by RobertIndie 12 months ago

Improve

  • Close consumer resources if the creation fails by @michaeljmarshall in #1070
  • Fix the transaction acknowledgement and send logic for chunked message by @liangyepianzhou in #1069
  • Correct the SendAsync() description by @Gleiphir2769 in #1066
  • Fix the panic when try to flush in DisableBatching=true by @Gleiphir2769 in #1065
  • Fix client reconnected every authenticationRefreshCheckSeconds when using tls authentication by @jffp113 in #1062
  • Send Close Command on Producer/Consumer create timeout by @michaeljmarshall in #1061
  • Fail all messages that are pending requests when closing by @graysonzeng in #1059
  • Fix the producer flush opertion is not guarantee to flush all messages by @Gleiphir2769 in #1058
  • Fix inaccurate producer mem limit in chunking and schema by @Gleiphir2769 in #1055
  • Fix ctx in partitionProducer.Send() is not performing as expected by @Gleiphir2769 in #1053
  • Stop block request even if Value and Payload are both set by @gunli in #1052
  • Simplify the flush logic by @gunli in #1049
  • Check if message is nil by @gunli in #1047
  • Return when registerSendOrAckOp() failed by @gunli in #1045

Full Changelog: https://github.com/apache/pulsar-client-go/compare/v0.11.0...v0.11.1-candidate-1

pulsar-client-go - v0.11.0

Published by RobertIndie over 1 year ago

Features

Improve

New Contributors

Full Changelog: https://github.com/apache/pulsar-client-go/compare/v0.10.0...v0.11.0

pulsar-client-go - v0.10.0

Published by RobertIndie over 1 year ago

Feature

Improve

New Contributors

pulsar-client-go - v0.9.0

Published by wolfstudy about 2 years ago

What's Changed

New Contributors

Full Changelog: https://github.com/apache/pulsar-client-go/compare/v0.8.0...v0.9.0

pulsar-client-go - v0.8.1

Published by freeznet over 2 years ago

What's Changed

New Contributors

Full Changelog: https://github.com/apache/pulsar-client-go/compare/v0.8.0...v0.8.1

pulsar-client-go - v0.8.0

Published by wolfstudy over 2 years ago

What's Changed

New Contributors

Full Changelog: https://github.com/apache/pulsar-client-go/compare/v0.7.0...v0.8.0-candidate-1

pulsar-client-go - v0.7.0

Published by cckellogg almost 3 years ago

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
pulsar-client-go - v0.6.0

Published by wolfstudy about 3 years ago

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.
pulsar-client-go - Release 0.5.0

Published by merlimat over 3 years ago

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

  • #510 Added http lookup service support
  • #502 Support listener name for go client
  • #484 Add multiple hosts support
  • #471 Use newError to build return error
  • #459 Improve error log for frame size too big and maxMessageSize
pulsar-client-go - v0.4.0

Published by wolfstudy over 3 years ago

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 to RPCRequestCount 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.
pulsar-client-go - v0.3.0

Published by wolfstudy almost 4 years ago

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 with github.com/datadog/zstd, see PR-385.
  • Fix retry policy not effective with non-FQDN topics, see PR-386.
pulsar-client-go - v0.2.0

Published by wolfstudy about 4 years ago

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:// and data://, 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.
pulsar-client-go - v0.1.0

Published by wolfstudy over 4 years ago

Client

  • Support TLS logic
  • Support Authentication logic
  • Support Proxy logic
  • Support Hostname verification logic

Producer

  • Add Send() method in Producer interface
  • Add SendAsync() method in Producer interface
  • Add LastSequenceID() method in Producer interface
  • Add Flush() method in Producer interface
  • Add Close() method in Producer interface
  • Add Topic() method in Producer interface
  • Add Name() method in Producer interface
  • Support MessageRouter logic
  • Support batch logic
  • Support compression message logic
  • Support HashingScheme logic
  • Support User defined properties producer logic

Consumer

  • Add Subscription() method in Consumer interface
  • Add Unsubscribe() method in Consumer interface
  • Add Receive() method in Consumer interface
  • Add Ack() method in Consumer interface
  • Add AckID() method in Consumer interface
  • Add Nack() method in Consumer interface
  • Add NackID() method in Consumer interface
  • Add Seek() method in Consumer interface
  • Add SeekByTime() method in Consumer interface
  • Add Close() method in Consumer interface
  • Support Dead Letter Queue consumer policy
  • Support Topics Pattern and Topics logic
  • Support topic consumer regx logic
  • Support multi topics consumer logic
  • Support Exclusive, Failover, Shared and KeyShared subscribe type logic
  • Support Latest and Earliest logic
  • Support ReadCompacted logic
  • Support ReplicateSubscriptionState logic
  • Support User defined properties consumer logic
  • Support Delayed Delivery Messages logic

Reader

  • Add Topic() method in Reader interface
  • Add Next() method in Reader interface
  • Add HasNext() method in Reader interface
  • Add Close() method in Reader interface
  • Support read compacted logic
  • Support start messageID logic
  • Support User defined properties reader logic