Table of Contents
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:
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,