AWS Elastic Beanstalk可以用于分布式消息处理吗?

时间:2012-08-27 15:55:02

标签: java-ee message-queue distributed-computing elastic-beanstalk spring-jms

我打算使用一个简单的java Web应用程序来引导和加载我的Spring JMS客户端,它将侦听队列上的消息并处理传入的消息。我的Web应用程序仅用于加载JMS客户端;没有用户访问此应用程序。

如果我要在AWS Beanstalk上部署此应用程序,它会自动扩展,假设作业队列加载了消息,并且Web应用程序中的jms作业侦听器正在使用所有可用资源 - 内存。线程等?即使负载均衡器上没有流量,AWS也会启动应用程序的新实例。

1 个答案:

答案 0 :(得分:1)

您可以根据许多不同的指标配置Elastic Beanstalk以进行向上和向下扩展。默认情况下,它使用NetworkOut,但您可以选择其他几个选项,如CpuUtilization和DiskWriteBytes。

在您的情况下,您可以将缩放触发器设置为CpuUtilization,以便在JMS客户端负载处理消息时,可以增加客户端数量。例如,如果CPU负载在5分钟内平均值> 80%,则可以向上扩展。

ElasticBeanstalk使用CloudWatch指标作为缩放触发器;这些是您在Elastic Beanstalk和EC2中的Monitoring选项卡下看到的相同指标。可以在EC2中创建自定义指标,但我不知道Elastic Beanstalk是否能够将自定义指标用作自动缩放触发器。

有关扩展触发器的更多信息,请参阅Elastic Beanstalk documentation