安装docker的kafka集群

安装zookeeper集群

参考:https://blog.csdn.net/qq_38270106/article/details/88789737

新建docker的kafka配置文件

mkdir -p /usr/local/docker-compose/kafka/{kafka1,kafka2,kafka3}

cd /usr/local/docker-compose/kafka

vi docker-compose.yml


   
   
   
   
  1. version: '2'
  2. services:
  3. kafka1:
  4. image: wurstmeister/kafka
  5. restart: always
  6. hostname: kafka1
  7. container_name: kafka1
  8. ports:
  9. - "9092:9092"
  10. environment:
  11. KAFKA_ADVERTISED_LISTENERS: PLAINTEXT: //198.168.128.133:9092
  12. KAFKA_ADVERTISED_HOST_NAME: 198.168 .128 .133
  13. KAFKA_ADVERTISED_PORT: 9092
  14. KAFKA_ZOOKEEPER_CONNECT: zoo1: 2181,zoo2: 2181,zoo3: 2181
  15. JMX_PORT: 9999
  16. volumes:
  17. - /usr/local/docker-compose/kafka/kafka1:/kafka
  18. external_links: # 连接compose文件以外的container
  19. - zoo1
  20. - zoo2
  21. - zoo3
  22. kafka2:
  23. image: wurstmeister/kafka
  24. restart: always
  25. hostname: kafka2
  26. container_name: kafka2
  27. ports:
  28. - "9093:9092"
  29. environment:
  30. KAFKA_ADVERTISED_LISTENERS: PLAINTEXT: //198.168.128.133:9093
  31. KAFKA_ADVERTISED_HOST_NAME: 198.168 .128 .133
  32. KAFKA_ADVERTISED_PORT: 9093
  33. KAFKA_ZOOKEEPER_CONNECT: zoo1: 2181,zoo2: 2181,zoo3: 2181
  34. JMX_PORT: 9988
  35. volumes:
  36. - /usr/local/docker-compose/kafka/kafka2:/kafka
  37. external_links: # 连接compose文件以外的container
  38. - zoo1
  39. - zoo2
  40. - zoo3
  41. kafka3:
  42. image: wurstmeister/kafka
  43. restart: always
  44. hostname: kafka3
  45. container_name: kafka3
  46. ports:
  47. - "9094:9092"
  48. environment:
  49. KAFKA_ADVERTISED_LISTENERS: PLAINTEXT: //198.168.128.133:9094
  50. KAFKA_ADVERTISED_HOST_NAME: 198.168 .128 .133
  51. KAFKA_ADVERTISED_PORT: 9094
  52. KAFKA_ZOOKEEPER_CONNECT: zoo1: 2181,zoo2: 2181,zoo3: 2181
  53. JMX_PORT: 9977
  54. volumes:
  55. - /usr/local/docker-compose/kafka/kafka3
  56. external_links: # 连接compose文件以外的container
  57. - zoo1
  58. - zoo2
  59. - zoo3
  60. kafka-manager:
  61. image: sheepkiller/kafka-manager:latest
  62. restart: always
  63. container_name: kafa-manager
  64. hostname: kafka-manager
  65. ports:
  66. - "9002:9000"
  67. links: # 连接本compose文件创建的container
  68. - kafka1
  69. - kafka2
  70. - kafka3
  71. external_links: # 连接compose文件以外的container
  72. - zoo1
  73. - zoo2
  74. - zoo3
  75. environment:
  76. ZK_HOSTS: zoo1: 2181,zoo2: 2181,zoo3: 2181
  77. KAFKA_BROKERS: kafka1: 9092,kafka2: 9093,kafka3: 9094
  78. APPLICATION_SECRET: letmein
  79. KM_ARGS: -Djava.net.preferIPv4Stack= true
  80. default:
  81. external: # 使用已创建的网络
  82. name: zookeeper_network

【额外的说明

version: '2'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"
  kafka1:
    image: wurstmeister/kafka:2.11-0.11.0.3
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka1:9092
      KAFKA_LISTENERS: PLAINTEXT://:9092
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_CREATE_TOPICS: "topic001:2:1"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

上述配置中有两处需要注意:
第一,KAFKA_ADVERTISED_LISTENERS的配置,这个参数会写到kafka配置的advertised.listeners这一项中,应用会用来连接broker;
第二,KAFKA_CREATE_TOPICS的配置,表示容器启动时会创建名为"topic001"的主题,并且partition等于2,副本为1;

COMPOSE_PROJECT_NAME=kakfa_test docker-compose up

COMPOSE_PROJECT_NAME=kakfa_test docker-compose ps查看

你可能感兴趣的:(安装docker的kafka集群)