刚开始学习 本文服务器目录统一放在 镜像选择的是 由于安装方式使用的是 使用 docker-compose-single-broker.yml PS:kafka 需要依赖 zookeeper 环境,因此需要配置 zookeeper 镜像,没镜像会自动拉取 启动成功的话,单机版就已经部署完成 先来看下 Kafka 下面有哪些脚本,因为我们需要依赖脚本来执行命令 直接根据容器名对容器内执行命令 PS:以后我们也可以根据脚本,去百度对应的命令 Topic 就是类别,分组,但我更喜欢叫主题。 生产者向某个 Topic 生产数据,消费者去对应消费 Topic 的数据 分区的数量一般不多于服务器,副本因子也一样 分区: 分区的作用能起到一个 副本因子: 由于如果服务器宕机,就会导致分区数量缺少,导致集群的不可用,因此会用副本因子来保证分区数量。 可以看到刚创建的 test 主题 现在模拟生产者向主题中设置数据 PS:Ctrl + D 退出 模拟消费者从开始位置消费数据 说实话,上述的命令行虽然使用上都很正常,但是还是有点懵,只能说具体的搭建完成了,下面要想正确学习还是需要结合代码。从现在开始学 Kafka:Docker 搭建 Kafka 单机版
前言
Kafka
,在什么都不会一脸懵逼的情况下,我选择通过部署单机版的方式,对 Kafka
有个初步认识,同时也会整理相关知识点信息,单独开个文章。/data/kafka
目录下官方文档
关于镜像
wurstmeister/kafka-docker
算是最火的 Kafka
镜像了
Github 地址
Dockerhub 地址安装 docker-componse
docker-componse
,所以要先安装
CentOS 之 docker-compose 安装docker-componse
安装一个是因为 wurstmeister/kafka-docker
给出的教程是这种方式,另一个原因确实是这种方式能减少不少命令,最后配置写好后统一启动就行了部署
编写启动脚本
zookeeper
默认端口 2181
,kafka
默认端口 9092
version: '2' services: zookeeper: image: wurstmeister/zookeeper ports: - "2181:2181" kafka: image: wurstmeister/kafka ports: - "9092:9092" environment: # client 要访问的 broker 地址 KAFKA_ADVERTISED_HOST_NAME: 118.25.215.105 # 通过端口连接 zookeeper KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 # 每个容器就是一个 broker,设置其对应的 ID KAFKA_BROKER_ID: 0 # 外部网络只能获取到容器名称,在内外网络隔离情况下 # 通过名称是无法成功访问 kafka 的 # 因此需要通过绑定这个监听器能够让外部获取到的是 IP KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://118.25.215.105:9092 # kafka 监听器,告诉外部连接者要通过什么协议访问指定主机名和端口开放的 Kafka 服务。 KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092 # Kafka默认使用-Xmx1G -Xms1G的JVM内存配置,由于服务器小,调整下启动配置 # 这个看自己的现状做调整,如果资源充足,可以不用配置这个 KAFKA_HEAP_OPTS: "-Xmx256M -Xms128M" # 设置 kafka 日志位置 KAFKA_LOG_DIRS: "/kafka/logs" # kafka 自动创建 topic,对于生成者与消费者连接的 TOPIC 不存在自动创建 KAFKA_AUTO_CREATE_TOPICS_ENABLE: true # kafka 开启删除 topic,开了自动创建,删除的也要开,否则删除后还会自动创建 KAFKA_DELETE_TOPIC_ENABLE: true volumes: - /var/run/docker.sock:/var/run/docker.sock # 挂载 kafka 日志 - /data/kafka/logs:/kafka/logs
启动 Kafka
docker-compose -f /data/kafka/docker-compose-single-broker.yml up
命令
查看脚本
docker exec -it kafka_kafka_1 /bin/bash -c 'cd /opt/kafka/bin && ls'
创建 Topic
负载均衡
,提高吞吐量
的作用。假如有3个台服务器,一共3个分区,那么每个服务器就对应 1 个分区,每台服务器吞吐量 100,那么一共就能处理 300 吞吐量。但是分区过多也不好,因为越多的分区需要打开更多地文件句柄,更多的内存,更高的延迟,运维与排错方面的成本也会增加。
参考:如何为Kafka集群选择合适的Partitions数量
参考:Kafka动态调整topic副本因子replication-factordocker exec -it kafka_kafka_1 /bin/bash -c '/opt/kafka/bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test'
查看 Topic
docker exec -it kafka_kafka_1 /bin/bash -c '/opt/kafka/bin/kafka-topics.sh --list --bootstrap-server localhost:9092'
生产者生产数据
docker exec -it kafka_kafka_1 /bin/bash -c '/opt/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test'
消费者消费数据
docker exec -it kafka_kafka_1 /bin/bash -c '/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic test'
结语
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算