Docker安装kafka

Docker安装kafka

安装之前,先创建一个网络,模式为桥接的方式

docker network create kafkaBridge --driver bridge

只要能保证,zk和kafka能后相互访问就好了,方式随意。

注意 : 使用同网络好于不同网络。虽然理论上 Kafka 和 ZooKeeper 可以跨广域网部署,但高延迟的网络连接可能会影响性能和可靠性。理想情况下,它们应该部署在具有低延迟网络连接的服务器上。

这里我创建了一个 一个网桥,虽然使用默认网络也可以,但是我这个做了一个区分,做了一个单独的网络地址段给到zk和kafka

第一步先安装 zooker

把端口映射出来
docker run -p2181:2181 -d --name zookeeper-server
--network kafkaBridge
-e ALLOW_ANONYMOUS_LOGIN=yes
bitnami/zookeeper:latest

第二部安装 kafka

docker run -d --name kafka-server
--network kafkaBridge
-p 9092:9092 \ 暴露端口
-e ALLOW_PLAINTEXT_LISTENER=yes
-e KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper-server:2181 \ // 链接kafka地址
-e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://172.18.0.3:9092 \ // 外网暴露地址
bitnami/kafka:latest

安装一个图形化管理工具

docker run -d --name kafka-map
--network kafkaBridge
-p 9001:8080
-v /opt/kafka-map/data:/usr/local/kafka-map/data
-e DEFAULT_USERNAME=admin
-e DEFAULT_PASSWORD=admin
--restart always dushixiang/kafka-map:latest

执行测试命令

docker exec kafka kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1 --topic test

docker exec kafka kafka-console-producer.sh --broker-list localhost:9092 --topic test

docker exec kafka kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

sping yml 配置

spring:
  profiles:
    active: dev
  application:
    name: testKafka
  kafka:
    producer:
      bootstrap-servers: xxx.xxxx.xxx.xxx:9092
      key-serializer: org.apache.kafka.common.serialization.StringSerializer
      value-serializer: org.apache.kafka.common.serialization.StringSerializer
      batch-size: 65536
      buffer-memory: 524288
    consumer:
      max-poll-records: 100
      group-id: 0
      key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      bootstrap-servers: 2xxx.xxxx.xxx.xxx:9092

posted @ 2024-07-16 15:15  菜菜920  阅读(14)  评论(0编辑  收藏  举报