洛江区建设局网站,建网站报价 优帮云,做门户网站用什么程序,长沙seo步骤【Kafka】| 总结/Edison Zhou1准备工作这里我们使用一台Linux CentOS系统的服务器来模拟三个Kafka Broker的伪集群#xff08;即一台server上开三个不同端口#xff09;环境用于学习测试#xff0c;大概的准备工作有两个#xff1a;安装Docker# wget https://mirrors.aliyu… 【Kafka】| 总结/Edison Zhou1准备工作这里我们使用一台Linux CentOS系统的服务器来模拟三个Kafka Broker的伪集群即一台server上开三个不同端口环境用于学习测试大概的准备工作有两个安装Docker# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O
/etc/yum.repos.d/docker-ce.repo
# yum -y install docker
# systemctl enable docker systemctl start docker
# docker --version安装Docker Compose# sudo curl -L https://github.com/docker/compose/releases/download/1.28.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
# sudo chmod x /usr/local/bin/docker-compose
# docker-compose --version2部署Kafka环境准备docker-compose.yml文件这里我的宿主机IP是172.16.16.4你需要改为你自己的。具体的 docker-compose.yml 文件内容如下version: 3.8
services:zookeeper:image: wurstmeister/zookeepercontainer_name: zookeeperports:- 2181:2181restart: alwayskafka1:image: wurstmeister/kafkadepends_on: [ zookeeper ]container_name: kafka1ports:- 9091:9091environment:HOSTNAME: kafka1KAFKA_BROKER_ID: 0KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka1:9091KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9091KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181/kafkaextra_hosts:kafka1: 172.16.16.4kafka2:image: wurstmeister/kafkadepends_on: [ zookeeper ]container_name: kafka2ports:- 9092:9092environment:HOSTNAME: kafka2KAFKA_BROKER_ID: 1KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka2:9092KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181/kafkaextra_hosts:kafka2: 172.16.16.4kafka3:image: wurstmeister/kafkadepends_on: [ zookeeper ]container_name: kafka3ports:- 9093:9093environment:HOSTNAME: kafka3KAFKA_BROKER_ID: 2KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka3:9093KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9093KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181/kafkaextra_hosts:kafka3: 172.16.16.4部署Zookeeper和Kafka将docker-compose.yml文件拷贝到服务器紧接着在该文件目录下执行docker-compose up -d 即可快速完成部署。# docker-compose up -d
Building with native build. Learn about native build in Compose here: https://docs.docker.com/go/compose-native-build/
Creating network kafka_default with the default driver
Creating zookeeper ... done
Creating kafka1 ... done
Creating kafka3 ... done
Creating kafka2 ... done部署完成后通过执行docker-compose ps 来验证一下。# docker-compose psName Command State Ports
-------------------------------------------------------------------------------------------------------------------------
kafka1 start-kafka.sh Up 0.0.0.0:9091-9091/tcp,:::9091-9091/tcp
kafka2 start-kafka.sh Up 0.0.0.0:9092-9092/tcp,:::9092-9092/tcp
kafka3 start-kafka.sh Up 0.0.0.0:9093-9093/tcp,:::9093-9093/tcp
zookeeper /bin/sh -c /usr/sbin/sshd ... Up 0.0.0.0:2181-2181/tcp,:::2181-2181/tcp, 22/tcp, 2888/tcp, 3888/tcp其中docker-compose.yml中HOSTNAME和extra_hosts的结合使用会在容器中的/etc/hosts中增加一条记录通过执行docker exec -it kafka1 cat /etc/hosts 来验证一下。# docker exec -it kafka1 cat /etc/hosts
.....
172.16.16.4 kafka1
.....3容器内验证与测试安装部署完成后首先我们进入容器内部来验证和测试一下。docker exec -it kafka1 bash创建测试Topic创建一个测试用的topictesttopic此topic配置了2个分区无额外的副本。kafka-topics.sh --create --zookeeper 172.16.16.4:2181/kafka --replication-factor 1 --partitions 2 --topic testtopic模拟Producer重新打开一个窗口进入容器内部模拟一个producer在控制台随意发送一些字符串消息。kafka-console-producer.sh --topictesttopic --broker-list kafka1:9091,kafka2:9092,kafka3:9093
tests^H
haha模拟Consumer重新打开一个窗口进入容器内部模拟一个consumer设置从头开始消费会收到producer发来的字符串消息。kafka-console-consumer.sh --bootstrap-server kafka1:9091,kafka2:9092,kafka3:9093 --from-beginning --topic testtopic
tests
haha可以看到consumer成功接收到了producer发来的两个string类型的message。4使用GUI工具Kafka ToolKafka Tool是一个用于管理和使用Apache Kafka集群的GUI应用程序。Kafka Tool提供了一个较为直观的UI可让用户快速查看Kafka集群中的对象以及存储在topic中的消息提供了一些专门面向开发人员和管理员的功能。NOTE目前Kafka Tool已改名为Offset Explorer不过我还是倾向于叫它 Kafka Tool。下载地址https://www.kafkatool.com/download.html使用方式比较简单首先创建一个Connection需要填写的配置如下NOTE这里bootstrap-servers参数列表填写的是主机名你可以先在自己电脑上的hosts文件中添加这个映射然后点击Test测试无误就进入了以下界面可以看到我们刚刚创建的topic有两个分区已经可以显示出来了。然后更改一下显示内容的类型从Byte Array改为String方便查看。通过上面的producer.sh再发送一些消息然后通过kafka tool来查看一下消息End总结本文总结了Kafka的测试环境搭建过程本文选择的是基于Docker来搭建非宿主机直接搭建加之官方并没有推出官方的Docker镜像因此建议生产环境还是不要通过Docker来搭建开发/测试环境是可以的快速且高效。参考资料极客时间胡夕《Kafka核心技术与实战》B站尚硅谷《Kafka 3.x入门到精通教程》年终总结Edison的2020年终总结数字化转型我在传统企业做数字化转型C#刷题C#刷剑指Offer算法题系列文章目录.NET面试.NET开发面试知识体系.NET大会2020年中国.NET开发者大会PDF资料