【发布时间】:2019-11-02 23:54:55
【问题描述】:
Spark 批处理为我们的业务带来了很多价值,因为它很容易横向扩展(我们使用 AWS EMR 和 YARN)。
但是,随着我们最新的专有解决方案采用微服务架构,新的挑战出现了。到目前为止,有 ~230 个微服务充当生产者,其中事件存储在 Kafka 中(这意味着 ~230 个 Kafka 主题)。
虽然我们已经成功验证了使用 Spark Streaming 作为事件处理来构建对象的最新状态,但我是否正确地说每个 Kafka 主题都需要一个 Spark 流应用程序(所以,大约 230 个应用程序) ?
如果是这样,我们具有 48 个 vCPU 和 192GiB 内存 的集群只能同时处理 52 个流处理应用程序。这听起来太少了,因为这些应用程序(需要 24 小时运行)并没有做太多事情,因为它们只是每 5 秒拉一次事件并对我们的数据存储执行 CRUD 操作。
我是否想念使用 Spark 流式传输?您会采用/使用哪些其他方法或框架?
【问题讨论】:
标签: apache-spark event-handling spark-streaming microservices