이벤트를 다른 컨테이너의 kafka 클러스터로 보내는 컨테이너 내부에서 내 작업을 연결하려고합니다. 내가 무엇을 시도 했든 상관없이 이벤트를 kafka 주제로 보낼 수 없습니다. telnet과 kafkacat을 내 kafka의 주소 수신기 포트로 시도했지만 모든 것이 잘 작동합니다.
이것은 내 작업 작성 파일이고 "172.16.33.91"은 내 로컬 IP 주소입니다.
version: '3'
services:
events-processor:
build:
context: ./events-processor
extra_hosts:
- "host:172.16.33.91"
restart: unless-stopped
이것은 1-> 1000에서 기존 주제 num-test 로 데이터를 보내는 내 작업 코드입니다 .
from time import sleep
from json import dumps
from kafka import KafkaProducer
if __name__=="__main__":
producer = KafkaProducer(bootstrap_servers=['host:9093'],
value_serializer=lambda x: dumps(x).encode('utf-8'))
for e in range(1000):
data = {'number' : e}
producer.send('numtest', value=data)
print(data)
sleep(5)
이것은 내 kafka-zookeeper 작성 파일입니다.
version: '3'
services:
zookeeper:
image: confluentinc/cp-zookeeper
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
volumes:
- zk-data:/var/lib/zookeeper/data
- zk-logs:/var/lib/zookeeper/log
- secrets:/etc/zookeeper/secrets
restart: unless-stopped
kafka:
image: confluentinc/cp-kafka
depends_on:
- zookeeper
ports:
- "9093:9093"
environment:
KAFKA_BROKER_ID: 1
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_ADVERTISED_LISTENERS: INTERNAL://kafka:9092,EXTERNAL://:9093
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
KAFKA_LISTENERS: INTERNAL://:9092,EXTERNAL://:9093
KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181'
KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL
volumes:
- kafka-data:/var/lib/kafka/data
- secrets:/etc/kafka/secrets
restart: unless-stopped
volumes:
zk-logs: {}
zk-data: {}
kafka-data: {}
secrets: {}
아무도 내가 뭘 잘못했는지 알 수 있습니까? 감사합니다!
이 정보를 넣어야하는 더 좋은 장소가 있거나 해결책을 찾기 위해 빠진 키워드가 있다면 커뮤니티에 알리십시오.
이미 여러 블로그가 작성되었습니다.
KAFKA_ADVERTISED_LISTENERS: INTERNAL://kafka:9092,HOST://localhost:9093
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL:PLAINTEXT,HOST:PLAINTEXT
KAFKA_LISTENERS: INTERNAL://0.0.0.0:9092,HOST://0.0.0.0:9093
://:port
주소를 사용 하면 로컬 호스트 이름, 컨테이너 만 수신하거나 수신하지 않습니다.이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다