首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Kafka会完全取代负载均衡器吗?

Kafka会完全取代负载均衡器吗?
EN

Stack Overflow用户
提问于 2020-02-06 04:10:30
回答 3查看 2.7K关注 0票数 2

我被问到一个问题来实现系统的扩展。系统本身处理客户数据,并在这些数据上创建过滤,并生成一些分析信息。

1)第一次迭代:

我最初的回答是提供一个Kafka集群解决方案。

Kafka本身具有流媒体、负载均衡和容错能力。因此,它为我提供了在许多代理中有效地创建、处理生产数据并在任何消费者中按我所需使用这些数据的能力。

我还可以随心所欲地为过滤数据添加流功能。

在这个场景中,不需要考虑负载均衡器,因为Kafka自己处理负载均衡。

2)第二次迭代:有人问我,如果有巨大的需求增长,我该如何扩展系统。扩展系统的方法是什么?

在这种情况下,在考虑Kafka集群时,应该在开始时描述broker计数和分区。它本身并不是扩张的东西。因此,尽管Kafka在考虑多个位置和快速增加的请求时提供了很大的灵活性,但我的第二个意见是使用弹性负载均衡器&数据中心的自动绑定。

当请求数在第二天翻倍时。负载均衡器将负载路由到其他负载均衡器/其他数据中心,因此在必要的情况下,新的Kafka集群会自动连接到整个系统。

主要负载路由可以在地理位置上完成。

这个问题的重点是负载均衡器看起来仍然需要,尽管Kafka是如此强大的候选者。

我的第二种方法类似于下面的模式。

https://i.stack.imgur.com/kEx1C.jpg

(在此期间,我在这次面试之前遇到过一些面试官,他们准确地将负载均衡器命名为“过时的技术”,我被评判为非常残酷,因为我建议使用负载均衡器。)

如果你是一位Kafka专家&在多个位置处理不断增加的请求,我很高兴你能发表你的评论。

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-02-06 07:41:35

使用Kafka的负载平衡将会遇到问题,因为客户端本身将创建多个到Kafka代理的连接,可能会绕过您的代理。在启动时,客户端(生产者/消费者)向bootstrap.servers发送Metadata请求,以确定集群的外观。当您在Java客户机中打开跟踪/调试日志级别时,可以详细地观察到这一点。

另一方面,网状级的解决方案将需要协议支持,例如,类似这样的事情正在发生在特使- https://github.com/envoyproxy/envoy/issues/2852

票数 1
EN

Stack Overflow用户

发布于 2020-02-06 07:22:44

虽然您可以将TCP负载均衡器放在Kafka代理的前面,但这只会造成另一个故障点,并且IMO是没有意义的,因为客户端必须直接向分区领导者发送请求,而负载均衡器没有这样的上下文。

HAProxy或Nginx并没有“过时”。你需要说这句话的人说得更清楚些

如果消息产量增加,则可以调整Kafka消费者设置以处理背压。只有当代理接近硬件限制时,才应该添加更多资源(不仅仅是在负载高峰期间)

票数 0
EN

Stack Overflow用户

发布于 2021-04-16 02:00:47

如果您的客户端是内部客户端,您可以在不使用任何支持外部客户端的接口(例如HTTP上的公共客户端)的情况下逃脱,因此您不需要任何ALB或API网关。但是,如果您需要支持外部客户端,则使用负载均衡器进行路由或引导繁忙的流量可能是最明智的策略。您可以将负载直接交给lambda,它负责处理,或者您可以将其转储到Kafka中进行“扇出”(多个消费者处理消息)。这将取决于负载、用例和可重播性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60083370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档