2

我正在设计一个网络日志分析。

我找到了一位架构师,使用 Django(Back-end & front-end)+ kafka + spark。

我还从这个链接中找到了一些相同的系统:http: //thevivekpandey.github.io/posts/2017-09-19-high-velocity-data-ingestion.html和下面的建筑师

在此处输入图像描述

但我对卡夫卡消费者的角色感到困惑。它将是一项独立于 Django 的服务,对吧?

所以如果我想将实时数据绘制到前端图表,我如何附加到 Django。

如果我将 kafka-consumer 和 producer 都放在 Django 中,那就太荒谬了。来自 sdk 的请求通过传递给 kafa 主题(生产者)到达 Django 并返回 Django(消费者)进行处理。为什么我们不直接去。它看起来更简单更好。

请帮我理解kafka消费者的角色,它应该属于哪里?以及如何连接到我的前端。

谢谢和最好的问候,

詹姆斯

4

1 回答 1

0

文章提到了没有 Kafka 的用例:

我们看到,在负载高峰期,数据摄取无法正常工作:连接到 MongoDB 的时间过长,并且请求超时。这导致数据丢失。

所以引入 Kafka 和 Kafka Consumer 的主要目的是避免 DB 层的负载过大,并通过中间的消息层优雅地处理它。老实说,在这种情况下,任何消息队列都可以使用,不仅仅是Kafka。

Kafka Consumer可以是Web 层的一部分。这不是最优的,因为您希望分离关注点(这使得系统在发生故障时更加可靠)和独立扩展事物的能力。

如果上面提到的问题(可扩展性和可靠性)确实很重要,并且您很容易在操作上执行(因为您现在需要部署、监控等新服务),那么最好将 Kafka Consumer 实现为单独的服务。最后,这是一个经典的单体与微服务的困境。

于 2017-11-28T19:51:32.657 回答