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 ?
4

1 回答 1

1
  1. 是的,您可以在不同的机器上运行生产者、代理和消费者。
  2. 生产者只与代理通信,消费者只与代理通信。也就是说,经纪人是生产者和消费者之间的中介(因此得名“经纪人”)。生产者、消费者和代理之间的通信通常通过 Kafka Java 或 Scala API 进行。但是,还有其他语言的本地客户端,例如 C/C++ ( librdkafka ) 以及 HTTP/REST API ( Confluent kafka-rest,请参阅docs )。
  3. Kafka tarball 必须安装在代理上。您是否还需要生产者和/或消费者上的 Kafka 压缩包取决于您是否使用任何包含的生产者/消费者应用程序,例如 Kafka 的控制台消费者。根据我的经验,大多数用户使用 Kafka 的 Java/Scala API 编写自己的生产者和/或消费者应用程序,然后将他们的自定义应用程序部署到所需的机器上。在后一种情况下,您不需要在这些机器(即运行生产者/消费者应用程序的机器)上也安装 Kafka 压缩包。
于 2015-11-02T22:05:59.140 回答