我正在从他们的快速入门教程中学习 Apache Kafka:http: //kafka.apache.org/documentation.html#quickstart。到目前为止,我已经完成了如下设置。一个生产者节点,其中一个 Web 服务器在端口 8888 上运行。另一个节点上的 Kafka 服务器(代理)、消费者和 Zookeeper 实例。我已经用 3 个分区测试了默认的控制台/文件启用的生产者和消费者。设置是完美的,我可以看到我按照他们创建的顺序发送的消息(在每个分区中)。
现在,我想将从 Web 服务器生成的日志发送到 Kafka Broker。这些消息将由消费者稍后处理。目前我正在使用 syslog-ng 将服务器日志捕获到文本文件中。关于如何实现生产者使用kafka进行日志聚合,我想出了3个粗略的想法
Producer Implementations
First Kind:
监听 syslog-ng 的 tcp 端口。获取每条消息并发送到 kafka 服务器。这里我们有两个中间进程:Producer 和 syslog-ng
第二类:使用 syslog-ng 作为 Producer。应该找到一种将消息发送到 Kafka 服务器而不是写入文件的方法。syslog-ng,生产者是中间进程。
第三种:将网络服务器本身配置为生产者。
我的想法是否正确。在最后一种情况下,我们没有任何中间过程。但我怀疑它的实现会影响服务器性能。谁能告诉我使用 Apache Kafka 的最佳方法(如果上述 3 种不好)并指导我进行适当的服务器配置?..
PS:我正在为我的网络服务器使用 node.js
谢谢,
萨拉特