Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何自动扩展Java War部署设置_Java_Amazon Web Services_Rest_Jackson_War - Fatal编程技术网

如何自动扩展Java War部署设置

如何自动扩展Java War部署设置,java,amazon-web-services,rest,jackson,war,Java,Amazon Web Services,Rest,Jackson,War,我在AWS EC2Ubuntu Linux机器上有一个Java Tomcat War部署设置。这个服务器基于一些API和一些计算。现在,它消耗了15%到20%的服务器CPU利用率。有时,高达80%(罕见病例)。如何在不同AZ上动态地自动缩放多个设置 我有亚洲孟买地区,该地区有三个可用区,我只在一个可用区部署。如果负载增加,我会手动将实例添加到不同的AZ上。但是我不知道如何在没有手动设置的情况下动态地完成这项工作,就像AWS autoscaling group处理无状态的事情一样 每一条评论都将受

我在AWS EC2Ubuntu Linux机器上有一个Java Tomcat War部署设置。这个服务器基于一些API和一些计算。现在,它消耗了15%到20%的服务器CPU利用率。有时,高达80%(罕见病例)。如何在不同AZ上动态地自动缩放多个设置

我有亚洲孟买地区,该地区有三个可用区,我只在一个可用区部署。如果负载增加,我会手动将实例添加到不同的AZ上。但是我不知道如何在没有手动设置的情况下动态地完成这项工作,就像AWS autoscaling group处理无状态的事情一样


每一条评论都将受到欢迎和赞赏。

您需要某种方式使一个实例在没有干预的情况下完全运行。这往往是一个复杂的部分,没有一个“答案”。它通常意味着两件事之一:

  • 一个cloudinit脚本,在实例启动时设置实例(直接使用bash脚本或使用Chef、Puppet等配置管理工具)
  • “黄金形象”,即已经完全设置好的AMI,一旦启动就可以开始服务
一旦你得到了这些,你就创建了一个启动配置,它定义了一个实例应该是什么样的——实例类型、磁盘、AMI、用户数据(cloud init脚本将去哪里)、机器角色、安全组等等

然后创建一个自动缩放组并将LC附着到该组。“自动缩放”组将创建实例,而不是您创建的实例。如果需要,可以将手滚实例附加到ASG。ASG允许您指定要在其中创建实例的子网;为要创建实例的每个AZ至少提供一个子网。它将自动将创建的实例分布到AZ上。ASG具有最小、最大和所需的实例计数。期望计数是在任何给定时间它应该有多少实例;如果少于此数,它将创建更多,如果多于此数,它将根据终止策略(最旧优先、最新优先等)终止一些。最小值和最大值定义所需计数的边界-所需计数永远不会小于最小值或大于最大值

最后,定义“向外缩放”和“向内缩放”规则,以说明何时应自动更改所需的计数。在您的例子中,这可能是在ASG的平均CPU使用率超过50%时向外扩展,而在ASG的平均CPU使用率低于25%时向内扩展

您还需要将ASG设置为负载平衡器的目标组,这样一旦创建了一个新实例并运行正常,它就会占用流量——否则,创建它的意义何在?确保您进行了准确的运行状况检查,以便无法服务于流量的实例不会收到流量