Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/aventer-ug/go-mesos-framework-kafka
This is a kafka framework for mesos
https://github.com/aventer-ug/go-mesos-framework-kafka
golang kafka mesos zookeeper
Last synced: 24 days ago
JSON representation
This is a kafka framework for mesos
- Host: GitHub
- URL: https://github.com/aventer-ug/go-mesos-framework-kafka
- Owner: AVENTER-UG
- License: gpl-3.0
- Created: 2019-11-25T17:02:34.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2024-02-13T08:59:44.000Z (12 months ago)
- Last Synced: 2024-06-20T14:20:41.205Z (7 months ago)
- Topics: golang, kafka, mesos, zookeeper
- Language: Go
- Homepage: https://git.aventer.biz/AVENTER/go-mesos-framework-kafka
- Size: 8.79 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: changelog.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# go-mesos-framework-kafka
[![Donate](https://img.shields.io/liberapay/receives/AVENTER.svg?logo=liberapay)](https://liberapay.com/mesos)
[![Support Chat](https://img.shields.io/static/v1?label=Chat&message=Support&color=brightgreen)](https://riot.im/app/#/room/#support:matrix.aventer.biz)Dies ist ein Kafka Framework für Apache Mesos
## Voraussetzung
- Apache Mesos ab 1.6.0
- Mesos mit SSL und Authentication ist Optional
- Persistent Storage## Framework starten
Mit den folgenden Umgebungsvariablen kann das Framework konfiguriert werden. Nach dem Starten wird es sich an den Mesos Master anmelden und erscheint als "kafkaframework" in der Mesos UI. Sobald sich das Framework erfolgreich initialisiert hat, startet es Zookeeper und anschließend Kafka.
```Bash
export FRAMEWORK_USER="root"
export FRAMEWORK_NAME="kafkaframework"
export FRAMEWORK_PORT="10000"
export FRAMEWORK_ROLE="kafka"
export FRAMEWORK_STATEFILE_PATH="/tmp"
export MESOS_PRINCIPAL=""
export MESOS_USERNAME=""
export MESOS_PASSWORD=""
export MESOS_MASTER=":5050"
export LOGLEVEL="DEBUG"
export DOMAIN="weave.local"
export ZOOKEEPER_COUNT=1
export KAFKA_COUNT=3
export RES_CPU=0.1
export RES_MEM=3200
export AUTH_PASSWORD="password"
export AUTH_USERNAME="user"
export MESOS_SSL="true"
export ZOOKEEPER_CUSTOM_DOMAIN=""
export KAFKA_CUSTOM_DOMAIN=""
export IMAGE_KAFKA="confluentinc/cp-kafka:5.4.1"
export IMAGE_ZOOKEEPER="zookeeper:3.5.7"
export VOLUME_DRIVER="local"
export VOLUME_KAFKA="/tmp/kafka1,/tmp/kafka2,/tmp/kafka3"
export VOLUME_ZOOKEEPER="/tmp/zookeeper1,/tmp/zookeeper2,/tmp/zookeeper3"go run init.go app.go
```![Kafka Framework in Mesos](kafka_mesos.gif)
Faellt ein Container aus, wird dieser neugestartet.
![Kafka Framework in Mesos](kafka_mesos1.gif)
## Task Status Abfragen
Um den Status eines Tasks über das Framework abzufragen, folgendes Kommando verwenden:
```Bash
curl -X GET 127.0.0.1:10000/v0/container/ -d 'JSON' | jq
```## Fehlende Kafka oder Zookeeper Starten
Sollte aus bestimmten Gründen der Healthcheck Status im Framework nicht mit der Realität übereinstimmen, kann über den nachfolgenden Aufruf erzwungen werden die fehlenden Container zu starten.
```Bash
curl -X GET 127.0.0.1:10000/v0//reflate -d 'JSON'
```## Kafka oder Zookeeper skalieren
Um Kafka oder Zookeeper im Betrieb zu skalieren, wird dem Framework die zu laufende Anzahl an Containern angegeben. Soll der Zookeeper also drei mal laufen, muss als eine "3" angegeben werden. Beim Scaledown wird der zuletzt hinzugefügte Container entfernt.
```Bash
curl -X GET 127.0.0.1:10000/v0//scale/ -d 'JSON'
```## Task killen
Sollte es notwendig sein einen Task zu benden, erfolgt dies mit dem nachfolgenden aufruf. Der beendete Container wird nicht automatisch neu gestartet.
```Bash
curl -X GET 127.0.0.1:10000/v0/task/kill/ -d 'JSON'
```