自动缩放 worker/daemon 作为 Kafka 消费者

Auto scaled worker/daemon as Kafka consumer

我们计划在 Java 中有一个 Kafka 消费者作为守护进程,它需要嗅探 Kafka 的消息,但想知道我们如何自动缩放这个守护进程。请为此提出最佳设计

通过这个 AWS 工作人员,这是一个好的解决方案吗?

我假设您在谈论 EBS Worker 环境。在 kafka 的情况下,EBS worker 环境在 SQS 上工作将无济于事。

对于为 kafka 队列定义的消费者,您将需要定义自定义自动缩放策略。除了由 ec2 指标、cloudwatch 和 ASG 驱动的开箱即用扩展外,您可能还需要向 cloudwatch 发布更多指标,这将允许您定义自动扩展的触发器。使用 cloudwatch 警报,您可以配置可以执行自动缩放的支持 lambda 函数。 当然以上只是实现缩放的简化方法,您可以实现适合您环境的东西。

队列长度(消息消耗率)是考虑缩放的一个很好的指标,您应该根据队列长度进行缩放。这应该是基于 CPU、IO 和其他标准的扩展的补充。