一文掌握docker-compose部署kafka单机和集群,从此告别zookeeper!
2023-07-22 13:10:28
无ZooKeeper的Kafka:告别繁琐,拥抱轻松部署
在Kafka的世界里,ZooKeeper曾是不可或缺的存在,扮演着协调的角色。然而,随着Kafka 3.3版本的推出,这一切都将发生改变。KRaft横空出世,以其强大的功能取代了ZooKeeper,为Kafka带来了无与伦比的便利和灵活性。
踏上无ZooKeeper的Kafka之旅
要开启无ZooKeeper的Kafka之旅,第一步就是确保使用3.5或更高版本的Kafka镜像。这一版本已将KRaft完全集成,为你提供流畅无忧的体验。
单机Kafka部署:轻松自如,一触即发
部署单机Kafka就像一幅简单的画作。首先,创建并切换到一个名为“kafka-single”的目录。然后,创建一个docker-compose.yml文件,并添加以下代码:
version: '3.3'
services:
kafka:
image: confluentinc/cp-kafka:6.2.0
hostname: kafka
container_name: kafka
ports:
- "9092:9092"
environment:
KAFKA_BROKER_ID: 1
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
最后,运行docker-compose up -d
命令,你的Kafka单机服务将在眨眼间启动。
集群Kafka部署:强强联合,所向披靡
如果你需要的是更强大的集群部署,那也没问题。只需在“kafka-cluster”目录下创建一个docker-compose.yml文件,并添加以下代码:
version: '3.3'
services:
kafka1:
image: confluentinc/cp-kafka:6.2.0
hostname: kafka1
container_name: kafka1
ports:
- "9092:9092"
environment:
KAFKA_BROKER_ID: 1
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka1:9092
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 3
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT_CLUSTER
kafka2:
image: confluentinc/cp-kafka:6.2.0
hostname: kafka2
container_name: kafka2
ports:
- "9093:9093"
environment:
KAFKA_BROKER_ID: 2
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka2:9093
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 3
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT_CLUSTER
kafka3:
image: confluentinc/cp-kafka:6.2.0
hostname: kafka3
container_name: kafka3
ports:
- "9094:9094"
environment:
KAFKA_BROKER_ID: 3
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka3:9094
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 3
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT_CLUSTER
运行docker-compose up -d
命令,你的Kafka集群将在瞬间横空出世,为你提供强大的数据处理能力。
无ZooKeeper的Kafka之旅,如此便捷!
使用docker-compose,你可以轻而易举地部署Kafka单机和集群,无需再为ZooKeeper的繁琐配置所烦恼。这不仅简化了部署过程,还为你省去了大量的时间和精力,让你可以更加专注于Kafka本身的功能和特性。
常见问题解答
-
无ZooKeeper的Kafka和有ZooKeeper的Kafka有什么区别?
无ZooKeeper的Kafka使用KRaft取代ZooKeeper,在保持集群一致性的同时,简化了部署过程。 -
KRaft与ZooKeeper相比有什么优势?
KRaft具有更高的可用性、更高的吞吐量和更低的延迟,使其成为Kafka集群管理的理想选择。 -
我可以在现有的Kafka集群中使用KRaft吗?
是的,你可以通过分阶段升级的方式将现有Kafka集群升级到KRaft。 -
无ZooKeeper的Kafka是否稳定?
是的,KRaft已经过广泛的测试和验证,为无ZooKeeper的Kafka提供了稳定的基础。 -
如何监控无ZooKeeper的Kafka集群?
你可以使用标准的Kafka监控工具,如Kafka Manager或Prometheus,来监控无ZooKeeper的Kafka集群。