2015-11-02 73 views
0

我對卡夫卡相當陌生。我有以下結構:我可以在三臺不同的機器上安裝生產者,經紀人和消費者嗎?

1) 2 servers runing application logics and database, can I write kafka producer on these servers wrapped with docker container ? 

2) 1 server reserved for kafka broker and zookeeper 

3) 1 sever reserved for kafka comsumer 

我困惑約

1) whether I can run kafka producer, broker and consumer on separate machines ? 

2) How can they communicate ? 

3)Then do I have to install kafka tarball everywhere producer/consumer/broker are running ? 

回答

1
  1. 是的,你可以在不同的機器上運行的生產者,中間商和消費者。
  2. 生產者只與經紀人溝通,消費者只與經紀人溝通。也就是說,經紀人是生產者和消費者之間的中介(因此被稱爲「經紀人」)。生產者,消費者和經紀人之間的溝通通常通過Kafka Java或Scala API進行。但是,也有其他語言的本地客戶端,如C/C++(librdkafka)以及HTTP/REST API(Confluent kafka-rest,請參閱docs)。
  3. 卡夫卡tarball必須安裝在經紀商。無論您是否需要製作人和/或消費者上的Kafka tarball,取決於您是否使用任何包含的生產者/消費者應用程序,例如Kafka的控制檯消費者。根據我的經驗,大多數用戶使用Kafka的Java/Scala API編寫自己的生產者和/或消費者應用程序,然後將他們的自定義應用程序部署到所需的機器。在後一種情況下,您不需要在這些機器上(即運行生產者/消費者應用程序的機器)安裝Kafka tarball。