Web前端直接向Kafka经纪人生产是可行的想法吗?

use*_*166 7 apache-kafka kafka-consumer-api kafka-producer-api

我刚刚开始学习卡夫卡。因此,尝试构建一个社交媒体Web应用程序。我很清楚如何在后端使用Kafka(从后端到数据库和其他服务的通信)。

但是,我不确定前端应如何与后端通信。我当时考虑的架构为:Frontend-> Kafka-> Backend


前端充当生产者,后端充当消费者。在这种情况下,前端应该具有将所有必需的资源发布到Kafka经纪人(即使我在Kafka上实现了安全性)。现在,这种情况是否可行:

可以说我冒充了前端,并向我的Kafka经纪人发送了荒唐/无效的消息。现在,当它们到达我的后端时,我可以处理和过滤这些消息。但我知道Kafka会暂时存储这些消息。如果将这种“假”消息大量发布到我的Kafka服务器上,我的Kafka服务器不会面对DDOS问题,因为无论如何它们都会被存储,因为它们不会被过滤掉,直到它们被后端消耗掉为止?

如果是这样,我该如何预防呢?

还是这不是一个好选择?我还可以尝试使用REST进行前端/后端通信,然后从后端使用Kafka与数据库和其他内容进行通信。

或者,我可以有一个中间件(还是REST)来检测并过滤掉此类消息。

Han*_*sen 7

最简单的方法是让前端生产到 Kafka REST 代理

在此处查看详细信息https://docs.confluent.io/1.0/kafka-rest/docs/intro.html

这样,您的前端就不需要 kafka 客户端代码,您可以将 HTTP(S) 与标准的现成负载均衡器和 API 管理工具一起使用。