我正在開發(fā)一個(gè)應(yīng)用程序,它從 sqs 隊(duì)列中讀取消息,對該數(shù)據(jù)執(zhí)行一些操作,然后獲取結(jié)果并發(fā)布到 kafka 主題。為了在本地進(jìn)行測試,我想在我的 docker 版本中設(shè)置一個(gè) kafka 映像。我目前可以使用 docker-compose 在本地啟動(dòng) aws-cli、localstack 和我的應(yīng)用程序的容器。另外,我也可以毫無問題地啟動(dòng) kafka 和 Zookeper。我無法讓我的應(yīng)用程序與 kafka 通信。我嘗試過使用兩個(gè)單獨(dú)的撰寫文件,并且還擺弄了網(wǎng)絡(luò)。最后,我引用了:https://rmoff.net/2018/08/02/kafka-listeners-explained/。這是我的 docker-compose 文件:version: '3.7'services: localstack: image: localstack/localstack:latest container_name: localstack env_file: .env ports: # Localstack endpoints for various API. Format is localhost:container - '4563-4584:4563-4584' - '8080:8080' environment: - SERVICES=sns:4575,sqs:4576 - DATA_DIR=/tmp/localstack/data volumes: # store data locally in 'localstack' folder - './localstack:/tmp/localstack' networks: - my_network aws: image: mesosphere/aws-cli container_name: aws-cli # copy local JSON_DATA folder contents into aws-cli container's app folder #volumes: # - ./JSON_DATA:/app env_file: .env # bash entrypoint needed for multiple commands entrypoint: /bin/sh -c command: > " sleep 10; aws --endpoint-url=http://localstack:4576 sqs create-queue --queue-name input_queue; aws --endpoint-url=http://localstack:4575 sns create-topic --name input_topic; aws --endpoint-url=http://localstack:4575 sns subscribe --topic-arn arn:aws:sns:us-east-2:123456789012:example_topic --protocol sqs --notification-endpoint http://localhost:4576/queue/input_queue; " networks: - my_network depends_on: - localstack my_app: build: . image: my_app container_name: my_app env_file: .env ports: - '9000:9000' networks: - my_network depends_on: - localstack我希望發(fā)布到該主題時(shí)不會(huì)出現(xiàn)任何錯(cuò)誤。相反,我得到:kafka: client has run out of available brokers to talk to (Is your cluster reachable?)有什么想法我可能做錯(cuò)了嗎?感謝您的幫助。
1 回答

絕地?zé)o雙
TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超4個(gè)贊
通過僅將偵聽器設(shè)置為 localhost,您已使代理只能在 Kafka 容器本身(或從主機(jī)到容器)內(nèi)解析。
如果您希望另一個(gè) Docker 服務(wù)能夠訪問該容器,則必須添加<some protocol>://kafka:<some port>
到廣告偵聽器中,并將其設(shè)為listeners
非 localhost
協(xié)議也被添加到KAFKA_LISTENER_SECURITY_PROTOCOL_MAP
FWIW,該博客應(yīng)該涵蓋所有這些基礎(chǔ)。
- 1 回答
- 0 關(guān)注
- 247 瀏覽
添加回答
舉報(bào)
0/150
提交
取消