我们计划在 Java 中使用 Kafka 消费者作为守护进程,它需要嗅探 Kafka 中的消息,但想知道如何自动缩放该守护进程。请为此提出最佳设计
通过这个AWS工作人员,这是一个好的解决方案吗?
最佳答案
我假设您正在谈论 EBS Worker 环境。在 SQS 上运行的 EBS 工作环境对于 kafka 没有帮助。
对于为 kafka 队列定义的消费者,您需要定义自定义自动缩放策略。除了由 ec2 指标、cloudwatch 和 ASG 驱动的开箱即用扩展之外,您可能还需要向 cloudwatch 发布更多指标,这将允许您定义自动扩展的触发器。使用 cloudwatch 警报,您可以配置支持 lambda 函数来执行自动缩放。 当然,以上只是实现扩展的简化方法,您可以实现适合您环境的东西。
队列长度(消息消耗率)是考虑扩展的一个很好的指标,您应该根据队列长度进行扩展。这应该是基于 CPU、IO 和其他标准的扩展的补充。
关于java - 自动缩放工作进程/守护进程作为 Kafka 消费者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37369261/