Changelog History
Page 2
-
v1.4.0-RC1
April 08, 2020 -
v1.3.0 Changes
December 17, 2019confluent-kafka-go v1.3.0
Purge messages API (by @khorshuheng at GoJek).
ClusterID and ControllerID APIs.
๐ Go Modules support.
๐ Fixed memory leak on calls to
NewAdminClient()
. (discovered by @gabeysunda)Requires librdkafka v1.3.0 or later
librdkafka v1.3.0 changes
๐ Full librdkafka v1.3.0 release notes.
- KIP-392: Fetch messages from closest replica/follower (by @mhowlett).
- โ Experimental mock broker to make application and librdkafka development testing easier.
- ๐ Fixed consumer_lag in stats when consuming from broker versions <0.11.0.0 (regression in librdkafka v1.2.0).
-
v1.1.0 Changes
July 15, 2019confluent-kafka-go v1.1.0
- โ OAUTHBEARER SASL authentication (KIP-255) by Ron Dagostini (@rondagostino) at StateStreet.
- ๐ Offset commit metadata (@damour, #353)
- Requires librdkafka v1.1.0 or later
Noteworthy librdkafka v1.1.0 changes
๐ Full librdkafka v1.1.0 release notes.
- โ SASL OAUTHBEARER support (by @rondagostino at StateStreet)
- ๐ In-memory SSL certificates (PEM, DER, PKCS#12) support (by @noahdav at Microsoft)
- ๐ Pluggable broker SSL certificate verification callback (by @noahdav at Microsoft)
- ๐ Use Windows Root/CA SSL Certificate Store (by @noahdav at Microsoft)
- 0๏ธโฃ
ssl.endpoint.identification.algorithm=https
(off by default) to validate the broker hostname matches the certificate. Requires OpenSSL >= 1.0.2. - ๐ Improved GSSAPI/Kerberos ticket refresh
โฌ๏ธ Upgrade considerations
- ๐ Windows SSL users will no longer need to specify a CA certificate file/directory (
ssl.ca.location
), librdkafka will load the CA certs by default from the Windows Root Certificate Store. - 0๏ธโฃ SSL peer (broker) certificate verification is now enabled by default (disable with
enable.ssl.certificate.verification=false
) - ๐
%{broker.name}
is no longer supported insasl.kerberos.kinit.cmd
since kinit refresh is no longer executed per broker, but per client instance.
SSL
๐ New configuration properties:
ssl.key.pem
- client's private key as a string in PEM formatssl.certificate.pem
- client's public key as a string in PEM format- 0๏ธโฃ
enable.ssl.certificate.verification
- enable(default)/disable OpenSSL's builtin broker certificate verification. - 0๏ธโฃ
enable.ssl.endpoint.identification.algorithm
- to verify the broker's hostname with its certificate (disabled by default). - The private key data is now securely cleared from memory after last use.
โจ Enhancements
- โฌ๏ธ Bump
message.timeout.ms
max value from 15 minutes to 24 days (@sarkanyi)
๐ Fixes
- SASL GSSAPI/Kerberos: Don't run kinit refresh for each broker, just per client instance.
- SASL GSSAPI/Kerberos: Changed
sasl.kerberos.kinit.cmd
to first attempt ticket refresh, then acquire. - SASL: Proper locking on broker name acquisition.
- ๐ Consumer:
max.poll.interval.ms
now correctly handles blocking poll calls, allowing a longer poll timeout than the max poll interval.
-
v1.1.0-RC1
July 15, 2019 -
v1.0.0 Changes
March 29, 2019confluent-kafka-go v1.0.0
๐ This release adds support for librdkafka v1.0.0, featuring the EOS Idempotent Producer, Sparse connections, KIP-62 -
max.poll.interval.ms
support, zstd, and more.๐ See the librdkafka v1.0.0 release notes for more information and upgrade considerations.
Go client enhancements
- Now requires librdkafka v1.0.0.
- A new
IsFatal()
function has been added toKafkaError
to help the application differentiate between temporary and fatal errors. Fatal errors are currently only triggered by the idempotent producer.
- โ Added
kafka.NewError()
to make it possible to create error objects from user code / unit test (Artem Yarulin)๐ Go client fixes
- ๐ง Deprecate the use of
default.topic.config
. Topic configuration should now be set on the standard ConfigMap. - Reject delivery.report.only.error=true on producer creation (#306)
- ๐ Avoid use of "Deprecated: " prefix (#268)
- PartitionEOF must now be explicitly enabled thru
enable.partition.eof
Make sure to check out the Idempotent Producer example
-
v1.0.0-RC1
March 27, 2019 -
v0.11.6 Changes
October 25, 2018Admin API
๐ This release adds support for the Topic Admin API (KIP-4):
- Create and delete topics
- Increase topic partition count
- ๐ง Read and modify broker and topic configuration
Requires librdkafka >= v0.11.6
results, err := a.CreateTopics( ctx, // Multiple topics can be created simultaneously// by providing additional TopicSpecification structs here. []kafka.TopicSpecification{{ Topic: "mynewtopic", NumPartitions: 20, ReplicationFactor: 3}})
More examples.
๐ Fixes and enhancements
- ๐ง Make sure plugins are set before other configuration options (#225, @dtheodor)
- ๐ Fix metadata memory leak
- ๐ฏ Clone config before mutating it in NewProducer and NewConsumer (@vlad-alexandru-ionescu)
- Enable Error events to be emitted from librdkafka errors, e.g., ErrAllBrokersDown, et.al (#200)
-
v0.11.4 Changes
March 28, 2018Announcements
๐ This release drops support for Golang < 1.7
Requires librdkafka v0.11.4 or later
๐ Message header support
๐ Support for Kafka message headers has been added (requires broker version >= v0.11.0).
When producing messages, pass a
[]kafka.Header
list:err = p.Produce(&kafka.Message{ TopicPartition: kafka.TopicPartition{Topic: &topic, Partition: kafka.PartitionAny}, Value: []byte(value), Headers: []kafka.Header{{"myTestHeader", []byte("header values are binary")}}, }, deliveryChan)
Message headers are available to the consumer as
Message.Headers
:msg, err := c.ReadMessage(-1) if err != nil { fmt.Printf("%% Consumer error: %v\n", err) continue } fmt.Printf("%% Message on %s:\n%s\n", msg.TopicPartition, string(msg.Value)) if msg.Headers != nil { fmt.Printf("%% Headers: %v\n", msg.Headers) }
โจ Enhancements
- ๐ Message Headers support
- Close event channel when consumer is closed (#123 by @czchen)
- โ Added ReadMessage() convenience method to Consumer
- ๐ง producer: Make events channel size configurable (@agis)
- โ Added Consumer.StoreOffsets() (#72)
- โ Added ConfigMap.Get() (#26)
- โ Added Pause() and Resume() APIs
- โ Added Consumer.Committed() API
- โ Added OffsetsForTimes() API to Consumer and Producer
๐ Fixes
- ๐ง Static builds should now work on both OSX and Linux (#137, #99)
- โก๏ธ Update error constants from librdkafka
- 0๏ธโฃ Enable produce.offset.report by default (unless overriden)
- ๐ move test helpers that need testing pkg to _test.go file (@gwilym)
- ๐ Build and run-time checking of librdkafka version (#88)
- โ Remove gotos (@jadekler)
- ๐ Fix Producer Value&Key slice referencing to avoid cgo pointer checking failures (#24)
- ๐ Fix Go 1.10 build errors (drop
pkg-config --static ..
)