1. version: '3.1'
    2. networks:
    3. base:
    4. services:
    5. # zookeeper集群
    6. zk1:
    7. image: zookeeper:3.7
    8. restart: always
    9. hostname: zk1
    10. container_name: zk1
    11. ports:
    12. - 2181:2181
    13. volumes:
    14. - "./zookpeer/1/data:/data"
    15. - "./zookpeer/1/datalog:/datalog"
    16. environment:
    17. ZOO_MY_ID: 1
    18. ZOO_SERVERS: server.1=0.0.0.0:2888:3888;2181 server.2=zk2:2888:3888;2181 server.3=zk3:2888:3888;2181
    19. networks:
    20. - base
    21. zk2:
    22. image: zookeeper:3.7
    23. restart: always
    24. hostname: zk2
    25. container_name: zk2
    26. ports:
    27. - 2182:2181
    28. volumes:
    29. - "./zookpeer/2/data:/data"
    30. - "./zookpeer/2/datalog:/datalog"
    31. environment:
    32. ZOO_MY_ID: 2
    33. ZOO_SERVERS: server.1=zk1:2888:3888;2181 server.2=0.0.0.0:2888:3888;2181 server.3=zk3:2888:3888;2181
    34. networks:
    35. - base
    36. zk3:
    37. image: zookeeper:3.7
    38. restart: always
    39. hostname: zk3
    40. container_name: zk3
    41. ports:
    42. - 2183:2181
    43. volumes:
    44. - "./zookpeer/3/data:/data"
    45. - "./zookpeer/3/datalog:/datalog"
    46. environment:
    47. ZOO_MY_ID: 3
    48. ZOO_SERVERS: server.1=zk1:2888:3888;2181 server.2=zk2:2888:3888;2181 server.3=0.0.0.0:2888:3888;2181
    49. networks:
    50. - base
    51. kafka1:
    52. image: wurstmeister/kafka:2.13-2.7.0 ## 镜像
    53. restart: always
    54. container_name: kafka1
    55. hostname: kafka1
    56. volumes:
    57. - /etc/localtime:/etc/localtime ## 挂载位置(kafka镜像和宿主机器之间时间保持一直)
    58. - ./kafka/1:/kafka
    59. ports:
    60. - "9092:9092"
    61. environment:
    62. KAFKA_HOST_NAME: kafka1
    63. KAFKA_ZOOKEEPER_CONNECT: zk1:2181,zk2:2181,zk3:2181 ## 卡夫卡运行是基于zookeeper的
    64. KAFKA_LOG_RETENTION_HOURS: 120
    65. KAFKA_MESSAGE_MAX_BYTES: 10000000
    66. KAFKA_REPLICA_FETCH_MAX_BYTES: 10000000
    67. KAFKA_GROUP_MAX_SESSION_TIMEOUT_MS: 60000
    68. KAFKA_NUM_PARTITIONS: 3
    69. KAFKA_DELETE_RETENTION_MS: 1000
    70. KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
    71. KAFKA_BROKER_ID: 1 ## 修改节点id
    72. KAFKA_ADVERTISED_HOST_NAME: 122.112.141.95 ## 修改:宿主机IP
    73. KAFKA_ADVERTISED_PORT: 9092
    74. KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://122.112.141.95:9092 ## 修改:宿主机IP
    75. KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
    76. TZ: Asia/Shanghai
    77. links:
    78. - zk1
    79. - zk2
    80. - zk3
    81. networks:
    82. - base
    83. kafka2:
    84. image: wurstmeister/kafka:2.13-2.7.0 ## 镜像
    85. restart: always
    86. container_name: kafka2
    87. hostname: kafka2
    88. volumes:
    89. - /etc/localtime:/etc/localtime ## 挂载位置(kafka镜像和宿主机器之间时间保持一直)
    90. - ./kafka/2:/kafka
    91. ports:
    92. - "9093:9092"
    93. environment:
    94. KAFKA_HOST_NAME: kafka2
    95. KAFKA_ZOOKEEPER_CONNECT: zk1:2181,zk2:2181,zk3:2181 ## 卡夫卡运行是基于zookeeper的
    96. KAFKA_LOG_RETENTION_HOURS: 120
    97. KAFKA_MESSAGE_MAX_BYTES: 10000000
    98. KAFKA_REPLICA_FETCH_MAX_BYTES: 10000000
    99. KAFKA_GROUP_MAX_SESSION_TIMEOUT_MS: 60000
    100. KAFKA_NUM_PARTITIONS: 3
    101. KAFKA_DELETE_RETENTION_MS: 1000
    102. KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
    103. KAFKA_BROKER_ID: 2 ## 修改节点id
    104. KAFKA_ADVERTISED_HOST_NAME: 122.112.141.95 ## 修改:宿主机IP
    105. KAFKA_ADVERTISED_PORT: 9093
    106. KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://122.112.141.95:9093
    107. KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
    108. TZ: Asia/Shanghai
    109. links:
    110. - zk1
    111. - zk2
    112. - zk3
    113. networks:
    114. - base
    115. kafka3:
    116. image: wurstmeister/kafka:2.13-2.7.0 ## 镜像
    117. restart: always
    118. container_name: kafka3
    119. hostname: kafka3
    120. volumes:
    121. - /etc/localtime:/etc/localtime ## 挂载位置(kafka镜像和宿主机器之间时间保持一直)
    122. - ./kafka/3:/kafka
    123. ports:
    124. - "9094:9092"
    125. environment:
    126. KAFKA_HOST_NAME: kafka3
    127. KAFKA_ZOOKEEPER_CONNECT: zk1:2181,zk2:2181,zk3:2181 ## 卡夫卡运行是基于zookeeper的
    128. KAFKA_LOG_RETENTION_HOURS: 120
    129. KAFKA_MESSAGE_MAX_BYTES: 10000000
    130. KAFKA_REPLICA_FETCH_MAX_BYTES: 10000000
    131. KAFKA_GROUP_MAX_SESSION_TIMEOUT_MS: 60000
    132. KAFKA_NUM_PARTITIONS: 3
    133. KAFKA_DELETE_RETENTION_MS: 1000
    134. KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
    135. KAFKA_BROKER_ID: 3 ## 修改:节点id
    136. KAFKA_ADVERTISED_HOST_NAME: 122.112.141.95 ## 修改:宿主机IP
    137. KAFKA_ADVERTISED_PORT: 9094 ## 修改:节点端口
    138. KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://122.112.141.95:9094 ## 修改:节点端口
    139. KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
    140. TZ: Asia/Shanghai
    141. links:
    142. - zk1
    143. - zk2
    144. - zk3
    145. networks:
    146. - base
    147. # 以下监控二选一
    148. kafdrop:
    149. image: obsidiandynamics/kafdrop:latest
    150. restart: always
    151. container_name: kafdrop
    152. hostname: kafdrop
    153. ports:
    154. - "9000:9000"
    155. environment:
    156. KAFKA_BROKERCONNECT: kafka1:9092
    157. JVM_OPTS: "-Xms32M -Xmx64M"
    158. SERVER_SERVLET_CONTEXTPATH: "/"
    159. networks:
    160. - base
    161. kafka-manager:
    162. image: sheepkiller/kafka-manager:latest
    163. restart: always
    164. container_name: kafa-manager
    165. hostname: kafka-manager
    166. ports:
    167. - "9100:9000"
    168. links:
    169. - kafka1
    170. - kafka2
    171. - zk1
    172. - zk2
    173. environment:
    174. ZK_HOSTS: zk1:2181,zk2:2181
    175. KAFKA_BROKERS: kafka1:9092,kafka2:9093
    176. APPLICATION_SECRET: letmein
    177. KM_ARGS: -Djava.net.preferIPv4Stack=true
    178. networks:
    179. - base