Jak nainstalovat Apache Kafka v Ubuntu 20.04

Jak nainstalovat Apache Kafka v Ubuntu 20.04

Úvod

Apache Kafka je distribuovaná platforma pro zpracování událostí navržená ke zpracování velkých objemů dat v reálném čase. Díky své škálovatelnosti, spolehlivosti a nízké latenci se Apache Kafka stala populární volbou pro zpracování datových toků, analýzu v reálném čase a vytváření událostmi řízených aplikací.

Tato příručka vás provede kroky instalace a konfigurace Apache Kafka v systému Ubuntu 20.04. Nainstalujeme nejnovější verzi Apache Kafka a ukážeme vám, jak vytvořit a spravovat témata a produsenty/spotřebitele.

Instalace Javy

Apache Kafka vyžaduje pro svůj provoz Javu. Nejprve tedy nainstalujte JRE (Java Runtime Environment):

bash
sudo apt update
sudo apt install openjdk-11-jre

Zkontrolujte, zda byla Java nainstalována správně:

bash
java -version

Instalace Apache Kafka

Stáhněte nejnovější verzi Apache Kafka z oficiálních webových stránek Apache:

bash
wget https://dlcdn.apache.org/kafka/3.3.0/kafka_2.13-3.3.0.tgz

Rozbalte stažený archiv:

  15 věcí, o kterých jste nevěděli, že můžete dělat na Instagramu

bash
tar -xzvf kafka_2.13-3.3.0.tgz

Přesuňte rozbalený adresář Kafka do adresáře /opt:

bash
sudo mv kafka_2.13-3.3.0 /opt/kafka

Konfigurace Apache Kafka

Upravte konfigurační soubor Kafka server.properties v adresáři /opt/kafka/config:

bash
sudo nano /opt/kafka/config/server.properties

Nastavte následující vlastnosti:


broker.id=0
listeners=PLAINTEXT://:9092
log.dirs=/tmp/kafka-logs

Nastavení broker.id identifikuje tohoto brokera Kafka jako brokera s ID 0. Přístupový port pro klienty Kafka je nastaven na 9092 pomocí nastavení listeners. Nakonec nastavte adresář pro ukládání protokolů Kafka na /tmp/kafka-logs.

Spuštění Apache Kafka

Spusťte Apache Kafka pomocí následujícího příkazu:

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

Zkontrolujte, zda se Kafka spustila správně:

bash
jps

Měli byste vidět proces s názvem Kafka.

Vytvoření tématu Kafka

Použijte příkaz kafka-topics k vytvoření tématu Kafka s názvem test-topic s 1 oddílem a 1 replikou:

bash
/opt/kafka/bin/kafka-topics.sh --create --topic test-topic --partitions 1 --replication-factor 1

Použití producenta Kafka

Vytvořte producenta Kafka pomocí následujícího kódu Java:

java
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerRecord;

public class SimpleProducer {

public static void main(String[] args) {
// Vytvoření producenta
Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
KafkaProducer<String, String> producer = new KafkaProducer<>(props);

// Odeslání zprávy
ProducerRecord<String, String> record = new ProducerRecord<>("test-topic", "Hello, Kafka!");
producer.send(record);

// Zavření producenta
producer.close();
}
}

Uložte kód jako SimpleProducer.java a zkompilujte jej:

bash
javac SimpleProducer.java

Spusťte producenta:

bash
java SimpleProducer

Použití spotřebitele Kafka

Vytvořte spotřebitele Kafka pomocí následujícího kódu Java:

java
import org.apache.kafka.clients.consumer.ConsumerConfig;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.apache.kafka.clients.consumer.ConsumerRecords;
import org.apache.kafka.clients.consumer.KafkaConsumer;
import org.apache.kafka.common.serialization.StringDeserializer;

import java.time.Duration;
import java.util.Collections;

public class SimpleConsumer {

public static void main(String[] args) {
// Vytvoření spotřebitele
Properties props = new Properties();
props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
props.put(ConsumerConfig.GROUP_ID_CONFIG, "my-group");
props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName());
props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName());
KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);

// Přihlášení k odběru tématu
consumer.subscribe(Collections.singletonList("test-topic"));

// Čekání na zprávy
while (true) {
ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(100));
for (ConsumerRecord<String, String> record : records) {
System.out.println(record.value());
}
}

// Zavření spotřebitele
consumer.close();
}
}

Uložte kód jako SimpleConsumer.java a zkompilujte jej:

bash
javac SimpleConsumer.java

Spusťte spotřebitele:

bash
java SimpleConsumer

Závěr

Nainstalovali jsme úspěšně Apache Kafka v systému Ubuntu 20.04. Postupovali jsme přes instalaci Javy, stažení Kafka, konfiguraci server.properties, spuštění Kafka, vytvoření tématu Kafka a použití producenta/spotřebitele Kafka. Nyní můžete začít používat Apache Kafka pro zpracování datových toků a vytváření aplikací v reálném čase.

Tipy pro pokročilé:

* Pro zvýšení odolnosti použijte více brokerů Kafka.
* Pro zlepšení výkonu povolte kompresi zpráv.
* Použijte nástroj Kafka Connect pro integraci Kafka s jinými systémy.
* Monitorujte a spravujte svůj Kafka cluster pomocí nástroje Kafka Manager.

Často kladené dotazy (FAQ)

1. Mohu nainstalovat Apache Kafka na jiné verze Ubuntu?

Ano, ale tato příručka je specifická pro Ubuntu 20.04. Můžete vyhledat dokumentaci pro vaši verzi Ubuntu.

2. Jaké další nastavení mohu nakonfigurovat v server.properties?

Soubor server.properties obsahuje mnoho dalších konfiguračních nastavení. Více informací naleznete v dokumentaci Apache Kafka.

3. Mohu použít Apache Kafka na Windows?

Ano, Apache Kafka lze nainstalovat a spustit i ve Windows. Viz dokumentace o rychlém spuštění pro další informace.

4. Jak mohu monitorovat svůj Kafka cluster?

Můžete použít nástroj Kafka Manager dokumentace Kafka Manager.

5. Kde mohu získat podporu pro Apache Kafka?

Můžete vyhledat podporu na community fórech Apache Kafka.

6. Mohu použít Apache Kafka pro zpracování událostí JSON?

Ano, Apache Kafka podporuje zpracování událostí JSON prostřednictvím schématu avro nebo JSON.

7. Jak mohu škálovat svůj Kafka cluster?

Můžete přidat více brokerů Kafka do clusteru a upravit nastavení replikace.

8. Mohu použít Apache Kafka pro zpracování streamovaných dat?

Ano, Apache Kafka je vhodný pro zpracování streamovaných dat díky své nízké latenci a vysoké propustnosti.

9. Má Apache Kafka nějaké alternativy?

Ano,