• Stars
    star
    276
  • Rank 149,319 (Top 3 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created about 10 years ago
  • Updated about 8 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Apache Kafka Client Library for Go

Go Kafka Client

The Apache Kafka Client Library for Go is sponsored by [CrowdStrike] (http://www.crowdstrike.com/) and [Elodina Inc] (http://elodina.net)

Build Status

Ideas and goals behind the Go Kafka Client:

1) Partition Ownership

We decided on implementing multiple strategies for this including static assignment. The concept of re-balancing is preserved but now there are a few different strategies to re-balancing and they can run at different times depending on what is going on (like a blue/green deploy is happening). For more on blue/green deployments check out this video.

2) Fetch Management

This is what “fills up the reservoir” as I like to call it so the processing (either sequential or in batch) will always have data if there is data for it to have without making a network hop. The fetcher has to stay ahead here keeping the processing tap full (or if empty that is controlled) pulling the data for the Kafka partition(s) it is owning.

3) Work Management

For the Go consumer we currently only support “fan out” using go routines and channels. If you have ever used go this will be familiar to you if not you should drop everything and learn Go.

4) Offset Management

Our offset management is based on a per batch basis with each highest offset from the batch committed on a per partition basis.

Prerequisites:

  1. Install Golang http://golang.org/doc/install
  2. Make sure env variables GOPATH and GOROOT exist and point to correct places
  3. Install godep https://github.com/tools/godep
  4. mkdir -p $GOPATH/src/github.com/elodina && cd $GOPATH/src/github.com/elodina
  5. git clone https://github.com/elodina/go_kafka_client.git && cd go_kafka_client
  6. godep restore

Optional (for all tests to work):

  1. Install Docker https://docs.docker.com/installation/#installation
  2. cd $GOPATH/src/github.com/elodina/go_kafka_client
  3. Build docker image: docker build -t elodina/go_kafka_client .
  4. docker run -v $(pwd):/go_kafka_client elodina/go_kafka_client

After this is done you're ready to write some code!

For email support https://groups.google.com/forum/#!forum/kafka-clients

Related docs:

  1. Offset Storage configuration.
  2. Log and metrics emitters.

More Repositories

1

scala-kafka

Quick up and running using Scala for Apache Kafka
Scala
331
star
2

dropwizard-kafka-http

Apache Kafka HTTP Endpoint for producing and consuming messages from topics
Java
154
star
3

go-avro

Apache Avro for Golang
Go
129
star
4

xml-avro

Generate Avro schema and Avro binary from XSD schema and XML
Java
66
star
5

siesta

Making support for Apache Kafka in Go better
Go
55
star
6

go-zipkin

Zipkin tracing library for Go
Go
42
star
7

zipkin-mesos-framework

Zipkin Mesos Framework
Scala
31
star
8

go-kafka-avro

go-kafka-avro implements Avro encoding and decoding compatible with Confluent Schema Registry.
Go
28
star
9

go-kafka

Quick up and running using Go for Apache Kafka
Go
22
star
10

syslog-kafka

Syslog Producer for Apache Kafka
Go
21
star
11

stack-deploy

Apache Mesos Platform as a Service Deploy
Go
21
star
12

syscol

Collect local Mesos slave, underlying operating system and machine metrics and produce to Apache Kafka
Go
20
star
13

datastax-enterprise-mesos

DataStax Enterprise on Mesos
Scala
15
star
14

hdfs-mesos

Apache Hadoop HDFS Data Node Scheduler
Java
13
star
15

go-mesos-utils

Go based utilities for working with Apache Mesos Frameworks
Go
12
star
16

alligator

Custom allocator modules for Apache Mesos
C++
6
star
17

zeppelin-notebooks

Apache Zeppelin notebooks for YCSB
Shell
6
star
18

statsd-mesos-kafka

Mesos Statsd Framework that sends its metrics to Apache Kafka
Go
5
star
19

java-kafka

Log and Metric Reporters For Apache Kafka
Java
5
star
20

gonzo

Go Mesos Kafka Consumer
Go
4
star
21

ulysses

Go Network Security
Go
4
star
22

cloud-deploy-grid

A cloud portable deployment utility for spinning up and managing virtual machines of Apache Mesos and DCOS
Python
4
star
23

sawfly

Elodina Open Source Platform as a Service Software
4
star
24

collectd-framework

CollectD Plugin to Apache Kafka
Java
3
star
25

stockpile

stockpile is a mesos executor for go_kafka_client scheduler that mirros data from Apache Kafka to Apache Cassandra
Go
3
star
26

siesta-producer

Go
2
star
27

go-kafka-client-mesos

Go Kafka Client Mesos Framework
Go
2
star
28

mesos-jira

Simple JIRA on Mesos
1
star
29

go-log-kafka

1
star
30

pyrgus

Go Metrics, Logging and Distributed Tracing library for Apache Kafka
Go
1
star
31

syphon

Go
1
star
32

java-mesos-util

Apache Mesos Java Utility for Framework Support
Java
1
star