4.0.0

<aside> 💡

wget <https://dlcdn.apache.org/kafka/4.0.0/kafka_2.13-4.0.0.tgz>
tar -xvzf kafka_2.13-4.0.0.tgz && mv kafka_2.13-4.0.0 kafka

image.png

</aside>

<aside> 💡

nano ~/.bashrc

# Kafka Environment Variables
export KAFKA_HOME=$HOME/kafka
export PATH=$KAFKA_HOME/bin:$PATH

# Java Environment Variables
export JAVA_HOME=/usr/lib/jvm/jdk-23.0.2-oracle-x64
export PATH=$JAVA_HOME/bin:$PATH

Ctrl + O -> Enter -> Ctrl + X

source ~/.bashrc

image.png

</aside>

<aside> 💡

nano $KAFKA_HOME/config/server.properties

controller.quorum.voters=1@localhost:9093
log.dirs=/tmp/kraft-combined-logs -> log.dirs=/home/hoangvu/kafka-logs
(sửa dòng đã có trong file)

image.png

image.png

</aside>

<aside> 💡

$KAFKA_HOME/bin/kafka-topics.sh --version

KAFKA_CLUSTER_ID="$($KAFKA_HOME/bin/kafka-storage.sh random-uuid)"
echo $KAFKA_CLUSTER_ID
$KAFKA_HOME/bin/kafka-storage.sh format --standalone -t $KAFKA_CLUSTER_ID -c $KAFKA_HOME/config/server.properties

image.png

</aside>

<aside> 💡

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

image.png

</aside>

Kafka UI(Không cần lắm)

<aside> 💡

mkdir -p $HOME/kafka-ui
cd $HOME/kafka-ui

nano docker-compose.yml

version: '3.8'

services:
  kafka-ui:
    image: provectuslabs/kafka-ui:latest
    container_name: kafka-ui
    ports:
      - "8080:8080"
    environment:
      - KAFKA_CLUSTERS_0_NAME=local-kafka
      - KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=localhost:9092
      - KAFKA_CLUSTERS_0_ZOOKEEPER=localhost:2181

Ctrl + O -> Enter -> Ctrl + X

docker compose up -d

image.png

</aside>

3.9.0

<aside> 💡

wget <https://dlcdn.apache.org/kafka/3.9.0/kafka_2.13-3.9.0.tgz>
tar -xvzf kafka_2.13-3.9.0.tgz && mv kafka_2.13-3.9.0 kafka

nano ~/.bashrc

# Kafka Environment Variables
export KAFKA_HOME=$HOME/kafka
export PATH=$KAFKA_HOME/bin:$PATH

# Java Environment Variables
export JAVA_HOME=/usr/lib/jvm/jdk-23.0.2-oracle-x64
export PATH=$JAVA_HOME/bin:$PATH

Ctrl + O -> Enter -> Ctrl + X

source ~/.bashrc

$KAFKA_HOME/bin/kafka-topics.sh --version

nano ~/kafka/config/kraft/server.properties
log.dirs=/home/hoangvu/kafka/data

KAFKA_CLUSTER_ID="$($KAFKA_HOME/bin/kafka-storage.sh random-uuid)"
echo $KAFKA_CLUSTER_ID
$KAFKA_HOME/bin/kafka-storage.sh format --standalone -t $KAFKA_CLUSTER_ID -c $KAFKA_HOME/config/kraft/server.properties
$KAFKA_HOME/bin/kafka-server-start.sh $KAFKA_HOME/config/kraft/server.properties

</aside>

Confluent-kafka

sudo apt install python3-confluent-kafka

Test

<aside> 💡

$KAFKA_HOME/bin/kafka-topics.sh --create \\
  --topic test \\
  --bootstrap-server localhost:9092 \\
  --partitions 1 \\
  --replication-factor 1

$KAFKA_HOME/bin/kafka-topics.sh --list --bootstrap-server localhost:9092

</aside>

kafka-topics.sh --bootstrap-server localhost:9092 --delete --topic transactions
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic transactions --from-beginning