Sök…


Anmärkningar

Kafka är ett meddelandesystem med hög kapacitet för publiceringsabonnemang som implementeras som distribuerad, partitionerad, replikerad engagemangstjänst.

Hämtad från den officiella Kafka- webbplatsen

Snabb

En enda Kafka-mäklare kan hantera hundratals megabyte läsningar och skriver per sekund från tusentals kunder.

skalbar

Kafka är utformad för att tillåta ett enda kluster att fungera som den centrala ryggraden för en stor organisation. Det kan utvidgas elastiskt och transparent utan driftstopp. Dataströmmar är uppdelade och sprids över ett kluster av maskiner för att tillåta dataströmmar som är större än kapaciteten för en enskild maskin och för att tillåta kluster av samordnade konsumenter

Hållbar

Meddelanden kvarstår på disken och replikeras i klustret för att förhindra dataförlust. Varje mäklare kan hantera terabyte meddelanden utan resultatpåverkan.

Distribueras av Design

Kafka har en modern klustercentrisk design som erbjuder stark hållbarhet och feltoleransgarantier.

Installation eller installation

Steg 1 . Installera Java 7 eller 8

Steg 2 . Ladda ner Apache Kafka på: http://kafka.apache.org/downloads.html

Till exempel kommer vi att försöka ladda ner Apache Kafka 0.10.0.0

Steg 3 . Extrahera den komprimerade filen.

På Linux:

tar -xzf kafka_2.11-0.10.0.0.tgz

I fönster: Högerklicka -> Extrahera här

Steg 4 . Starta Zookeeper

cd kafka_2.11-0.10.0.0

Linux:

bin/zookeeper-server-start.sh config/zookeeper.properties

Windows:

bin/windows/zookeeper-server-start.bat config/zookeeper.properties

Steg 5 . Starta Kafka-server

Linux:

bin/kafka-server-start.sh config/server.properties

Windows:

bin/windows/kafka-server-start.bat config/server.properties

Introduktion

Apache Kafka ™ är en distribuerad streamingplattform.

Som betyder

1-Det låter dig publicera och prenumerera på strömmar av poster. I detta avseende liknar det en meddelandekö eller ett meddelandesystem för företag.

2-Det låter dig lagra strömmar av poster på ett feltolerant sätt.

3-Det låter dig behandla strömmar av poster när de inträffar.

Det används för två breda tillämpningsklasser:

1-bygga realtidsströmningsdata-rörledningar som pålitligt får data mellan system eller applikationer

2-byggande realtidsströmningsprogram som transformerar eller reagerar på dataströmmarna

Kafka-konsolskript är olika för Unix-baserade och Windows-plattformar. I exemplen kan du behöva lägga till tillägget enligt din plattform. Linux: skript som finns i bin/ med .sh förlängningen. Windows: skript som finns i bin\windows\ och med .bat förlängning.

Installation

Steg 1: Ladda ner koden och ta bort den:

tar -xzf kafka_2.11-0.10.1.0.tgz
cd kafka_2.11-0.10.1.0

Steg 2: starta servern.

för att kunna ta bort ämnen senare, öppna server.properties och ställa delete.topic.enable till true.

Kafka förlitar sig starkt på zookeeper, så du måste starta den först. Om du inte har det installerat kan du använda bekvämlighetsskriptet som är paketerat med kafka för att få en snabb och smutsig ZooKeeper-instans med en enda nod.

zookeeper-server-start config/zookeeper.properties
kafka-server-start config/server.properties

Steg 3: se till att allt är igång

Du borde nu ha en djurhållare som lyssnar på localhost:2181 och en enda kafka-mäklare på localhost:6667 .

Skapa ett ämne

Vi har bara en mäklare, så vi skapar ett ämne utan replikeringsfaktor och bara en partition:

kafka-topics --zookeeper localhost:2181 \
    --create \
    --replication-factor 1 \
    --partitions 1 \
    --topic test-topic

Kontrollera ditt ämne:

kafka-topics --zookeeper localhost:2181 --list
test-topic

kafka-topics --zookeeper localhost:2181 --describe --topic test-topic
Topic:test-topic    PartitionCount:1    ReplicationFactor:1 Configs:
Topic: test-topic   Partition: 0    Leader: 0   Replicas: 0 Isr: 0

skicka och ta emot meddelanden

Starta en konsument:

kafka-console-consumer --bootstrap-server localhost:9092 --topic test-topic

Starta en producent på en annan terminal och skicka några meddelanden. Som standard skickar verktyget varje rad som ett separat meddelande till mäklaren, utan speciell kodning. Skriv några rader och avsluta med CTRL + D eller CTRL + C:

kafka-console-producer --broker-list localhost:9092 --topic test-topic   
a message
another message
^D

Meddelandena ska visas i konsumentens terminal.

Sluta kafka

kafka-server-stop 

starta ett multimäklarkluster

Ovanstående exempel använder endast en mäklare. För att skapa ett riktigt kluster behöver vi bara starta mer än en kafka-server. De samordnar sig själva automatiskt.

Steg 1: för att undvika kollision skapar vi en server.properties fil för varje mäklare och ändrar id , port och logfile .

Kopia:

cp config/server.properties config/server-1.properties
cp config/server.properties config/server-2.properties

Redigera egenskaper för varje fil, till exempel:

vim config/server-1.properties
broker.id=1
listeners=PLAINTEXT://:9093
log.dirs=/usr/local/var/lib/kafka-logs-1

vim config/server-2.properties
broker.id=2
listeners=PLAINTEXT://:9094
log.dirs=/usr/local/var/lib/kafka-logs-2

Steg 2: starta de tre mäklarna:

    kafka-server-start config/server.properties &
    kafka-server-start config/server-1.properties &
    kafka-server-start config/server-2.properties &

Skapa ett replikerat ämne

kafka-topics --zookeeper localhost:2181 --create --replication-factor 3 --partitions 1 --topic replicated-topic

kafka-topics --zookeeper localhost:2181 --describe --topic replicated-topic
Topic:replicated-topic  PartitionCount:1    ReplicationFactor:3 Configs:
Topic: replicated-topic Partition: 0    Leader: 1   Replicas: 1,2,0 Isr: 1,2,0

Den här gången finns det mer information:

  • "leader" är den nod som är ansvarig för alla läser och skriver för den givna partitionen. Varje nod kommer att vara ledaren för en slumpvis vald del av partitionerna.
  • "repliker" är listan över noder som replikerar loggen för denna partition oavsett om de är ledaren eller även om de för närvarande lever.
  • "isr" är uppsättningen repliker "synkroniserad". Detta är delmängden av repliklistan som för närvarande är levande och fångad med ledaren.

Observera att det tidigare skapade ämnet är oförändrat.

testa feltolerans

Publicera ett meddelande till det nya ämnet:

kafka-console-producer --broker-list localhost:9092 --topic replicated-topic
hello 1
hello 2
^C

Döda ledaren (1 i vårt exempel). På Linux:

ps aux | grep server-1.properties
kill -9 <PID>

På Windows:

wmic process get processid,caption,commandline | find "java.exe" | find "server-1.properties" 
taskkill /pid <PID> /f

Se vad som hände:

kafka-topics --zookeeper localhost:2181  --describe --topic replicated-topic
Topic:replicated-topic  PartitionCount:1    ReplicationFactor:3 Configs:
Topic: replicated-topic Partition: 0    Leader: 2   Replicas: 1,2,0 Isr: 2,0

Ledningen har bytt till mäklare 2 och "1" för att inte synkronisera längre. Men meddelandena finns kvar (använd konsumenten för att kolla in själv).

Städa

Ta bort de två ämnena med:

kafka-topics --zookeeper localhost:2181 --delete --topic test-topic
kafka-topics --zookeeper localhost:2181 --delete --topic replicated-topic


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow