无法向mqtt代理从localhost到docker生成数据

snz8szmq  于 2021-06-05  发布在  Kafka
关注(0)|答案(1)|浏览(590)

我已生成此docker composer文件:

  1. version: '2'
  2. services:
  3. zookeeper:
  4. image: ${REPOSITORY}/cp-zookeeper:${CONFLUENT_DOCKER_TAG}
  5. hostname: zookeeper
  6. container_name: zookeeper
  7. ports:
  8. - "2181:2181"
  9. environment:
  10. ZOOKEEPER_CLIENT_PORT: 2181
  11. ZOOKEEPER_TICK_TIME: 2000
  12. broker:
  13. image: ${REPOSITORY}/cp-server:${CONFLUENT_DOCKER_TAG}
  14. hostname: broker
  15. container_name: broker
  16. depends_on:
  17. - zookeeper
  18. ports:
  19. - "9092:9092"
  20. expose:
  21. - "9093"
  22. environment:
  23. KAFKA_BROKER_ID: 1
  24. KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181'
  25. KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
  26. KAFKA_ADVERTISED_LISTENERS: INSIDE://broker:9093,OUTSIDE://localhost:9092
  27. KAFKA_LISTENERS: INSIDE://0.0.0.0:9093,OUTSIDE://0.0.0.0:9092
  28. KAFKA_INTER_BROKER_LISTENER_NAME: INSIDE
  29. KAFKA_METRIC_REPORTERS: io.confluent.metrics.reporter.ConfluentMetricsReporter
  30. KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
  31. KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
  32. KAFKA_CONFLUENT_LICENSE_TOPIC_REPLICATION_FACTOR: 1
  33. KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
  34. KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
  35. CONFLUENT_METRICS_REPORTER_BOOTSTRAP_SERVERS: broker:9093
  36. CONFLUENT_METRICS_REPORTER_ZOOKEEPER_CONNECT: zookeeper:2181
  37. CONFLUENT_METRICS_REPORTER_TOPIC_REPLICAS: 1
  38. CONFLUENT_METRICS_ENABLE: 'true'
  39. CONFLUENT_SUPPORT_CUSTOMER_ID: 'anonymous'
  40. schema-registry:
  41. image: ${REPOSITORY}/cp-schema-registry:${CONFLUENT_DOCKER_TAG}
  42. hostname: schema-registry
  43. container_name: schema-registry
  44. depends_on:
  45. - zookeeper
  46. - broker
  47. ports:
  48. - "8081:8081"
  49. environment:
  50. SCHEMA_REGISTRY_HOST_NAME: schema-registry
  51. SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS: 'PLAINTEXT://broker:9093'
  52. connect:
  53. image: cnfldemos/cp-server-connect-datagen:0.2.0-5.4.0
  54. hostname: connect
  55. container_name: connect
  56. depends_on:
  57. - zookeeper
  58. - broker
  59. - schema-registry
  60. ports:
  61. - "8083:8083"
  62. environment:
  63. CONNECT_BOOTSTRAP_SERVERS: 'broker:9093'
  64. CONNECT_REST_ADVERTISED_HOST_NAME: connect
  65. CONNECT_REST_PORT: 8083
  66. CONNECT_GROUP_ID: compose-connect-group
  67. CONNECT_CONFIG_STORAGE_TOPIC: docker-connect-configs
  68. CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR: 1
  69. CONNECT_OFFSET_FLUSH_INTERVAL_MS: 10000
  70. CONNECT_OFFSET_STORAGE_TOPIC: docker-connect-offsets
  71. CONNECT_OFFSET_STORAGE_REPLICATION_FACTOR: 1
  72. CONNECT_STATUS_STORAGE_TOPIC: docker-connect-status
  73. CONNECT_STATUS_STORAGE_REPLICATION_FACTOR: 1
  74. CONNECT_KEY_CONVERTER: org.apache.kafka.connect.storage.StringConverter
  75. CONNECT_VALUE_CONVERTER: io.confluent.connect.avro.AvroConverter
  76. CONNECT_VALUE_CONVERTER_SCHEMA_REGISTRY_URL: http://schema-registry:8081
  77. CONNECT_INTERNAL_KEY_CONVERTER: "org.apache.kafka.connect.json.JsonConverter"
  78. CONNECT_INTERNAL_VALUE_CONVERTER: "org.apache.kafka.connect.json.JsonConverter"
  79. CONNECT_ZOOKEEPER_CONNECT: 'zookeeper:2181'
  80. # CLASSPATH required due to CC-2422
  81. CLASSPATH: /usr/share/java/monitoring-interceptors/monitoring-interceptors-${CONFLUENT}.jar
  82. CONNECT_PRODUCER_INTERCEPTOR_CLASSES: "io.confluent.monitoring.clients.interceptor.MonitoringProducerInterceptor"
  83. CONNECT_CONSUMER_INTERCEPTOR_CLASSES: "io.confluent.monitoring.clients.interceptor.MonitoringConsumerInterceptor"
  84. CONNECT_PLUGIN_PATH: "/usr/share/java,/usr/share/confluent-hub-components"
  85. CONNECT_LOG4J_LOGGERS: org.apache.zookeeper=ERROR,org.I0Itec.zkclient=ERROR,org.reflections=ERROR
  86. control-center:
  87. image: ${REPOSITORY}/cp-enterprise-control-center:${CONFLUENT_DOCKER_TAG}
  88. hostname: control-center
  89. container_name: control-center
  90. depends_on:
  91. - zookeeper
  92. - broker
  93. - schema-registry
  94. - connect
  95. - ksqldb-server
  96. - kafka-mqtt
  97. ports:
  98. - "9021:9021"
  99. environment:
  100. CONTROL_CENTER_BOOTSTRAP_SERVERS: 'broker:9093'
  101. CONTROL_CENTER_ZOOKEEPER_CONNECT: 'zookeeper:2181'
  102. CONTROL_CENTER_CONNECT_CLUSTER: 'connect:8083'
  103. CONTROL_CENTER_KSQL_KSQLDB1_URL: "http://ksqldb-server:8088"
  104. CONTROL_CENTER_KSQL_KSQLDB1_ADVERTISED_URL: "http://localhost:8088"
  105. CONTROL_CENTER_SCHEMA_REGISTRY_URL: "http://schema-registry:8081"
  106. CONTROL_CENTER_REPLICATION_FACTOR: 1
  107. CONTROL_CENTER_INTERNAL_TOPICS_PARTITIONS: 1
  108. CONTROL_CENTER_MONITORING_INTERCEPTOR_TOPIC_PARTITIONS: 1
  109. CONFLUENT_METRICS_TOPIC_REPLICATION: 1
  110. PORT: 9021
  111. ksqldb-server:
  112. image: ${REPOSITORY}/cp-ksqldb-server:${CONFLUENT_DOCKER_TAG}
  113. hostname: ksqldb-server
  114. container_name: ksqldb-server
  115. depends_on:
  116. - broker
  117. - connect
  118. ports:
  119. - "8088:8088"
  120. environment:
  121. KSQL_CONFIG_DIR: "/etc/ksql"
  122. KSQL_BOOTSTRAP_SERVERS: "broker:9093"
  123. KSQL_HOST_NAME: ksqldb-server
  124. KSQL_LISTENERS: "http://0.0.0.0:8088"
  125. KSQL_CACHE_MAX_BYTES_BUFFERING: 0
  126. KSQL_KSQL_SCHEMA_REGISTRY_URL: "http://schema-registry:8081"
  127. KSQL_PRODUCER_INTERCEPTOR_CLASSES: "io.confluent.monitoring.clients.interceptor.MonitoringProducerInterceptor"
  128. KSQL_CONSUMER_INTERCEPTOR_CLASSES: "io.confluent.monitoring.clients.interceptor.MonitoringConsumerInterceptor"
  129. KSQL_KSQL_CONNECT_URL: "http://connect:8083"
  130. ksqldb-cli:
  131. image: ${REPOSITORY}/cp-ksqldb-cli:${CONFLUENT_DOCKER_TAG}
  132. container_name: ksqldb-cli
  133. depends_on:
  134. - broker
  135. - connect
  136. - ksqldb-server
  137. entrypoint: /bin/sh
  138. tty: true
  139. rest-proxy:
  140. image: ${REPOSITORY}/cp-kafka-rest:${CONFLUENT_DOCKER_TAG}
  141. depends_on:
  142. - zookeeper
  143. - broker
  144. - schema-registry
  145. ports:
  146. - 8082:8082
  147. hostname: rest-proxy
  148. container_name: rest-proxy
  149. environment:
  150. KAFKA_REST_HOST_NAME: rest-proxy
  151. KAFKA_REST_BOOTSTRAP_SERVERS: 'broker:9093'
  152. KAFKA_REST_LISTENERS: "http://0.0.0.0:8082"
  153. KAFKA_REST_SCHEMA_REGISTRY_URL: 'http://schema-registry:8081'
  154. kafka-mqtt:
  155. container_name: kafka-mqtt
  156. hostname: kafka-mqtt
  157. image: confluentinc/cp-kafka-mqtt:latest
  158. network_mode: host
  159. ports:
  160. - 1884:1884
  161. environment:
  162. KAFKA_MQTT_BOOTSTRAP_SERVERS: OUTSIDE://localhost:9092
  163. KAFKA_MQTT_LISTENERS: 0.0.0.0:1884
  164. KAFKA_MQTT_TOPIC_REGEX_LIST: mqtt.temperature:.*temperature
  165. KAFKA_MQTT_CONFLUENT_TOPIC_REPLICATION_FACTOR: 1

一切正常,但当我试图将一些数据从外部docker发布到mqtt代理时,什么都没有发生,我使用了:

  1. mosquitto_pub -h 0.0.0.0 -p 1884 -t mqtt.temperature -q 2 -m "99999,2.10#"

我得到这个错误:错误:连接被拒绝
我不知道这里有什么问题??
ps:我可以直接从kafkacat生成主题的数据,但这不是我想要的…我想要的只是从我的主机到KafkaMQTT代理的mqtt生产者获取数据。

wlzqhblo

wlzqhblo1#

在kafka mqtt配置上“网络模式”不能是“主机”(https://docs.docker.com/network/host/)而kafkaèmqttèbootstrapè服务器必须引用内部docker侦听器(以防inside://0.0.0.0:9093). 删除“网络模式”并更改kafka\u mqtt\u引导\u服务器。贝娄遵循我使用的代码,它的工作。

  1. version: '2.1'
  2. services:
  3. zoo1:
  4. image: zookeeper:3.4.9
  5. hostname: zoo1
  6. ports:
  7. - "2181:2181"
  8. environment:
  9. ZOO_MY_ID: 1
  10. ZOO_PORT: 2181
  11. ZOO_SERVERS: server.1=zoo1:2888:3888
  12. volumes:
  13. - ./zk-single-kafka-single/zoo1/data:/data
  14. - ./zk-single-kafka-single/zoo1/datalog:/datalog
  15. kafka1:
  16. image: confluentinc/cp-kafka:5.3.0
  17. hostname: kafka1
  18. container_name: kafka1
  19. ports:
  20. - "9092:9092"
  21. environment:
  22. KAFKA_ADVERTISED_LISTENERS: LISTENER_DOCKER_INTERNAL://kafka1:19092,LISTENER_DOCKER_EXTERNAL://${DOCKER_HOST_IP:-127.0.0.1}:9092
  23. KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_DOCKER_INTERNAL:PLAINTEXT,LISTENER_DOCKER_EXTERNAL:PLAINTEXT
  24. KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_DOCKER_INTERNAL
  25. KAFKA_ZOOKEEPER_CONNECT: "zoo1:2181"
  26. KAFKA_BROKER_ID: 1
  27. KAFKA_LOG4J_LOGGERS: "kafka.controller=INFO,kafka.producer.async.DefaultEventHandler=INFO,state.change.logger=INFO"
  28. KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
  29. volumes:
  30. - ./zk-single-kafka-single/kafka1/data:/var/lib/kafka/data
  31. depends_on:
  32. - zoo1
  33. kafka-mqtt:
  34. image: confluentinc/cp-kafka-mqtt:latest
  35. ports:
  36. - "1884:1884"
  37. environment:
  38. KAFKA_MQTT_BOOTSTRAP_SERVERS: "kafka1:19092"
  39. KAFKA_MQTT_TOPIC_REGEX_LIST: temperature:.*
  40. KAFKA_MQTT_LISTENERS: "0.0.0.0:1884"
展开查看全部

相关问题