• 正确使用docker compose安装Kafka并运行示例


    github有大量的kafka运行示例,个人推荐使用这个:

    spring-boot-quick/quick-kafka at master · vector4wang/spring-boot-quick · GitHub

    这个示例也是推荐大家使用docker compose去安装kafka,zookeeper和kafka-manager,但是最后发现只能跑示例,但是kafka-manager运行不起来,使用下面的方式,即可:

    1. version: '3.7'
    2. services:
    3. zookeeper:
    4. image: wurstmeister/zookeeper
    5. volumes:
    6. - /opt/zookeeper/data:/data
    7. container_name: zookeeper
    8. mem_limit: 1024M
    9. environment:
    10. ZOOKEEPER_CLIENT_PORT: 2181
    11. ZOOKEEPER_TICK_TIME: 2000
    12. ports:
    13. - 2181:2181
    14. restart: always
    15. kafka_node1:
    16. image: wurstmeister/kafka
    17. container_name: kafka_node1
    18. mem_limit: 1024M
    19. depends_on:
    20. - zookeeper
    21. ports:
    22. - 9092:9092
    23. volumes:
    24. - /opt/kafka/data:/kafka
    25. environment:
    26. KAFKA_CREATE_TOPICS: "test"
    27. KAFKA_BROKER_NO: 0
    28. KAFKA_LISTENERS: PLAINTEXT://kafka_node1:9092
    29. KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://${kafka_service_public_ip}:${kafka_service_public_port}
    30. KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
    31. KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    32. KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
    33. KAFKA_HEAP_OPTS: "-Xmx512M -Xms16M"
    34. restart: always
    35. kafka_manager:
    36. image: hlebalbau/kafka-manager:stable
    37. ports:
    38. - 9000:9000
    39. environment:
    40. ZK_HOSTS: "zookeeper:2181"
    41. depends_on:
    42. - zookeeper
    43. - kafka_node1
    44. restart: always
    1. # 1. 安装docker-compose,需要预先安装好Docker
    2. sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    3. # 增加可执行权限
    4. sudo chmod +x /usr/local/bin/docker-compose
    5. # 2. 创建相关文件夹
    6. mkdir -p /opt/zookeeper && mkdir -p /opt/kafka
    7. 将上面的yaml文件保存为kafka/kafka.yml文件
    8. # 3. 启动容器服务
    9. docker-compose -f /opt/kafka/kafka.yml up -d

    使用Kafka-Mgr管理集群

    • 访问服务所在主机的9000端口,按如下图所示配置集群:

     

    • 若出现 Yikes! KeeperErrorCode = Unimplemented for /kafka-manager/mutex Try again. 错误,参考此issue解决,具体步骤如下:

      docker exec -it zookeeper bash
      ./bin/zkCli.sh
      [zk: localhost:2181(CONNECTED) 2] ls /kafka-manager[configs, deleteClusters, clusters]
      [zk: localhost:2181(CONNECTED) 3] create /kafka-manager/mutex ""Created /kafka-manager/mutex
      [zk: localhost:2181(CONNECTED) 5] create /kafka-manager/mutex/locks ""Created /kafka-manager/mutex/locks
      [zk: localhost:2181(CONNECTED) 6] create /kafka-manager/mutex/leases ""Created /kafka-manager/mutex/leases
    • 最后,就可以正常看到topic1,topic2,topic3主题名字了。
  • 相关阅读:
    人生就是一个醒悟的过程(深度好文)
    debrief中的视频播放和打断点总结-----(持续更新)
    2022网安保研经验帖
    手把手教你语音识别(四)
    Flask数据库之SQLAlchemy--介绍--链接数据库
    Python一切皆对象-面向对象
    day02 mybatis
    【Java 进阶篇】JavaScript 中的全局对象和变量
    springboot+vue3+ts实现一个点赞功能
    ios小程序蓝牙发送信息失败,报10004
  • 原文地址:https://blog.csdn.net/penker_zhao/article/details/127705561