2012-07-26 101 views

回答

3

Kafka是用Scala编写的,这意味着它运行在JVM上,所以你可以在任何支持JVM的操作系统上有效运行。但是,通过使用操作系统的内核缓冲区缓存,代理可以大幅提升性能。我不知道这是如何与Windows非unix系统。 kafka源代码库为Scala和Java客户端提供了一流的支持。你也可以在contrib目录下找到像Php,C++,python等语言的生产者和消费者客户端。

3

Apache Kafka运行良好,在Linux(裸机Linux,私有或公共云中的Linux VM或基于Linux的Docker容器)上性能最稳定,最高效。已知Kafka在Windows上运行,但大多数商业支持Kafka的供应商不支持将Windows支持扩展到生产服务器,因此它受到Kafka社区的“社区支持”。 Kafka在macOS上的发展也非常好。

Apache Kafka发行版仅支持Java和Scala客户端,但较大的Kafka社区已为其他语言创建了一长串客户端。客户可用选项的好列表位于apache kafka wiki上:https://cwiki.apache.org/confluence/display/KAFKA/Clients

对于某些语言(如C#/ .Net,Python或Go),您会发现有2或3个或更多选项为客户端库。有些是最新的Kafka线协议的最新变化,如Exactly-Once Semantics,以及在Apache Kafka 0.11中添加的消息头或添加了0.10的时间戳,或0.9中添加的安全增强功能和新的消费者API,以及其他人不是。有些具有Java提供的全套函数/方法(如seek()或消费者组管理或拦截器),但其他方法则不然。有些是纯粹用目标语言编写的,有些则是librdkafka C/C++库中的包装器。有些由供应商提供商业支持,而另一些则不是,所以根据您的需求选择功能,稳定性,执行环境和可支持性。