文章目录
参考资料来自 Confluent
https://developer.confluent.io/quickstart/kafka-docker/
Kafka 与 Confluent
随着 Kafka 代码被贡献给 Apache 软件基金会,成功孵化成 Apache 顶级项目并顺利毕业,
世界上有越来越多的公司和个人开始接触到 Kafka,并不断地向 LinkedIn 的 Kafka 创始团队寻
求技术上的支持与帮助,这让 3 位 Kafka 创始人感到这是一个巨大的商业机会。
于是,在 2014 年 Jay Kreps、Jun Rao 和 Neha Narkhede 离开 LinkedIn 公司创办了 Confluent.io。
这家公司从事商业化 Kafka 工具开发以及提供实时流式处理方面的产品。
该公司基于 Apache Kafka 提供了 Confluent Platform。如果我们把 Apache Kafka 比作 Linux 的内核,那么 Confluent 就类似于 Linux 的某个发行版(比如 CentOS 或 Ubuntu)。Confluent 提供了一些 Apache Kafka 没有的组件和功能,比如完善的跨数据中心数据备份以及集群监控解决方案等。
另外 Confluent 还分为开源版本和企业版本。在企业版本中它提供了对于底层 Kafka 集群完整的可视化监控解决方案,以及一些辅助系统帮助管理集群。Confluent 的开源版本与 Apache 社区的 Kafka 并无太大的区别,用户甚至完全可以使用 Confluent Open Source 来替代 Apache Kafka。
创建 docker-compose.yml
---
version: '3'
services:
zookeeper:
image: confluentinc/cp-zookeeper:7.0.1
container_name: zookeeper
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
broker:
image: confluentinc/cp-kafka:7.0.1
container_name: broker
ports:
# To learn about configuring Kafka for access across networks see
# https://www.confluent.io/blog/kafka-client-cannot-connect-to-broker-on-aws-on-docker-etc/
- "9092:9092"
depends_on:
- zookeeper
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181'
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_INTERNAL:PLAINTEXT
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092,PLAINTEXT_INTERNAL://broker:29092
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
启动服务
找到包含 docker-compose.yml 的目录。
quintin at 192 in ~/Downloads/dockerKafka
$ pwd
/Users/quintin/Downloads/dockerKafka
quintin at 192 in ~/Downloads/dockerKafka
$ ls
docker-compose.yml
运行以下命令:
docker-compose up -d
运行成功的界面如下所示:
创建 Topic
创建一个名为 quickstart 的 topic。
quintin at 192 in ~/Downloads/dockerKafka
$ docker exec broker \
kafka-topics --bootstrap-server broker:9092 \
--create \
--topic quickstart
Created topic quickstart.
向 quickstart 中写入数据
quintin at 192 in ~/Downloads/dockerKafka
$ docker exec --interactive --tty broker \
kafka-console-producer --bootstrap-server broker:9092 \
--topic quickstart
>hello world! -quentin
>:-D
>^C%
以 command + C 结束输入。
消费 quickstart 中的数据
quintin at 192 in ~/Downloads/dockerKafka
$ docker exec --interactive --tty broker \
kafka-console-consumer --bootstrap-server broker:9092 \
--topic quickstart \
--from-beginning
hello world! -quentin
:-D
^CProcessed a total of 2 messages
同样是使用 command + C 退出。
关闭 Kafka
quintin at 192 in ~/Downloads/dockerKafka
$ docker-compose down
Stopping broker ... done
Stopping zookeeper ... done
Removing broker ... done
Removing zookeeper ... done
Removing network dockerkafka_default
总结