Name: confluent-kafka-go
Owner: Datadog, Inc.
Description: Confluent's Apache Kafka Golang client
Forked from: confluentinc/confluent-kafka-go
Created: 2017-01-18 22:54:30.0
Updated: 2017-01-18 22:54:32.0
Pushed: 2017-07-13 01:57:10.0
Size: 177
Language: Go
GitHub Committers
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
Confluent's Kafka client for Golang wraps the librdkafka C library, providing full Kafka protocol support with great performance and reliability.
The Golang bindings provides a high-level Producer and Consumer with support for the balanced consumer groups of Apache Kafka 0.9 and above.
See the API documentation for more information.
License: Apache License v2.0
The Go client is currently in beta and APIs are subject to (minor) change.
There are two main API strands: channel based or function based.
Messages, errors and events are posted on the consumer.Events channel for the application to read.
Pros:
Cons:
go.events.channel.size
).See examples/consumer_channel_example
Messages, errors and events are polled through the consumer.Poll() function.
Pros:
Cons:
Application writes messages to the producer.ProducerChannel. Delivery reports are emitted on the producer.Events or specified private channel.
Pros:
Cons:
See examples/producer_channel_example
Application calls producer.Produce() to produce messages. Delivery reports are emitted on the producer.Events or specified private channel.
Pros:
Cons:
See examples
master
branch => 2016-08-16)$ cd kafka
$ go install
NOTE: Requires pkg-config
To link your application statically with librdkafka append -tags static
to
your application's go build
command, e.g.:
$ cd kafkatest/go_verifiable_consumer
$ go build -tags static
This will create a binary with librdkafka statically linked, do note however that any librdkafka dependencies (such as ssl, sasl2, lz4, etc, depending on librdkafka build configuration) will be linked dynamically and thus required on the target system.
To create a completely static binary append -tags static_all
instead.
This requires all dependencies to be available as static libraries
(e.g., libsasl2.a). Static libraries are typically not installed
by default but are available in the corresponding ..-dev
or ..-devel
packages (e.g., libsasl2-dev).
After a succesful static build verify the dependencies by running
ldd ./your_program
, librdkafka should not be listed.
See kafka/README
git clone https://github.com/edenhill/librdkafka.git
cd librdkafka
./configure --prefix /usr
make
sudo make install
From the confluent-kafka-go directory which should reside
in $GOPATH/src/github.com/confluentinc/confluent-kafka-go
:
cd kafka
go install
Contributions to the code, examples, documentation, et.al, are very much appreciated.
Make your changes, run gofmt, tests, etc, push your branch, create a PR, and sign the CLA.