我正在设计一个网页日志分析。
我找到了一个拥有django(后端和前端)+kafka+spark的架构师。
我还发现了一些相同的系统link:httphttp://thevivekpandey.github.io/posts/2017-09-19-high-velocity-data-ingestion.html及以下链接
但我对Kafka消费者的角色感到困惑。这将是一个独立于django的服务,对吗?
所以如果我想把实时数据绘制到前端图表上,我该如何附加到django。
如果我把Kafka的消费者和生产者都放在django,那就太可笑了。来自sdk的请求通过传递给kafa topic(生产者)并返回django(消费者)进行处理。为什么我们不直接去。它看起来简单而且更好。
请帮助我了解Kafka消费者的角色,它应该属于哪里?以及如何连接到我的前端。
谢谢并致以最诚挚的问候,
果酱
1条答案
按热度按时间xwmevbvl1#
文章提到了没有kafka的用例:
我们看到,在峰值负载时,数据摄取工作不正常:连接到mongodb的时间太长,请求超时。这导致了数据丢失。
因此,引入kafka和kafka consumer的主要目的是避免db层上的过多负载,并通过中间的消息传递层优雅地处理它。老实说,在这种情况下可以使用任何消息队列,而不仅仅是kafka。
kafka消费者可以是web层的一部分。这并不是最优的,因为您需要关注点的分离(这使得系统在发生故障时更加可靠)和独立扩展事物的能力。
如果上面提到的问题(可伸缩性和可靠性)真的很重要,并且操作起来很容易(因为现在需要部署、监视一个新的服务),那么最好将kafka消费者作为一个独立的服务来实现。最后,这是一个经典的“独石”与“微服务”的两难选择。