2016-08-12 8 views
0

にカカ-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を試してみました。

答えて

-1

試してみてください。

(bootstrap_servers=[], api_version=(0, 9))) 
関連する問題