我可以在三台不同的机器上安装生产商,经纪人和消费者吗

时间:2015-11-02 12:02:54

标签: apache-kafka kafka-producer-api

我对卡夫卡很新。我有以下架构:

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 个答案:

答案 0 :(得分:1)

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