にカカ-pythonのコードと相互作用していません。今、私は2つのドッカーズ経由で相互作用したい - 生産者と消費者カフカは、だから私は、ホスト上のカフカと飼育係のインスタンスを開始したドッキングウィンドウ
PRODUCERドッキングウィンドウでコードされています。消費者のドッキングウィンドウのためのコードがある
from kafka import KafkaProducer
import time
producer = KafkaProducer(bootstrap_servers=['localhost:9092'])
i = 0
while 1:
# "kafkaesque" is the name of our topic
producer.send("stupid", str(i))
i += 1
time.sleep(1)
:
from kafka import KafkaConsumer
consumer = KafkaConsumer(bootstrap_servers=['localhost:9092'])
consumer.subscribe(['stupid'])
for message in consumer:
print (message.value)
Dockerfile用消費者は次のとおりです。PRODUCERため
FROM debian:jessie
RUN apt-get update && apt-get -y upgrade
RUN apt-get install -y python-setuptools
RUN apt-get install -y python-pip
RUN pip install kafka-python
ADD . /Consumer
WORKDIR /Consumer
CMD ["python", "consumer.py"]
Dockerfileは次のとおりです。
FROM debian:jessie
RUN apt-get update && apt-get -y upgrade
RUN apt-get install -y python-setuptools
RUN apt-get install -y python-pip
RUN pip install kafka-python
ADD . /Producer
WORKDIR /Producer
CMD ["python","counter.py"]
は今、私はそれらの両方を構築し、私はそれを実行すると、次のように:
docker run consumer
docker run producer
そして、その後のそれぞれについて、私はこのエラーを取得する:
Traceback (most recent call last):
File "consumer.py", line 3, in <module>
consumer = KafkaConsumer(bootstrap_servers=['localhost:9092'])
File "/usr/local/lib/python2.7/dist-packages/kafka/consumer/group.py", line 284, in __init__
self._client = KafkaClient(metrics=self._metrics, **self.config)
File "/usr/local/lib/python2.7/dist-packages/kafka/client_async.py", line 202, in __init__
self.config['api_version'] = self.check_version(timeout=check_timeout)
File "/usr/local/lib/python2.7/dist-packages/kafka/client_async.py", line 791, in check_version
raise Errors.NoBrokersAvailable()
kafka.errors.NoBrokersAvailable: NoBrokersAvailable
**
**
誰かがこれを解決する方法を指摘できますか?私はドッカーのネットワークポートでホストのネットワークポートと対話することができないようにいくつかのアイデアを持っていますが、私はEXPOSEとそれぞれの私を助けていない-pを試してみました。