高并发之阿里云弹性伸缩的使用记录

说明
阿里云的弹性伸缩功能,是阿里云ecs服务器应对高并发业务的解决方案
阿里云弹性伸缩文档:https://help.aliyun.com/document_detail/25857.html
此文档记录了当前架构如何结合阿里云弹性伸缩的踩坑之路

前提
1、启用阿里云弹性伸缩的前提是业务已经有一定的性能测试的经历,了解哪些应用服务比较吃ecs的cpu,并发可能较大
2、需要将可能存在并发的应用服务隔离出来,单独放在一台服务器
3、应用服务连接数据库RDS、redis、eureka需要用内网IP
4、转发到应用服务的流量必须从阿里云的slb或者gateway网关服务,暂不支持自建的nginx
以下我以商城服务为例,来搭建弹性伸缩系统

1、搭建应用程序自动部署的镜像
需要创建一个镜像,可以自启动将特定的应用程序
1)新建一个ecs-A,性能配置一般用2cpu、4G内存,操作系统用centos7.9(单进程的话可以选择1核2G)

并且安装基础服务:
yum install -y java-1.8.0-openjdk-devel.x86_64
yum install mysql -y
yum install lrzsz -y
yum install vim -y
yum install sshpass -y
yum -y install nc

2)登录ecs-A,cd /etc/systemd/system

3)vim run-script-when-shutdown.service

4)
[Unit]
Description=service to run script when shutdown
After=syslog.target network.target

[Service]
Type=simple
ExecStart=/root/restart-ecs.sh
ExecStop=/root/stop-ecs.sh
RemainAfterExit=yes

[Install]
WantedBy=default.target

5)
这一步我们需要编写服务器ecs-A的开机自启动脚本,因为代码不支持钩子触发自动发布,我思考通过拉取原始服务器的jar包,来实现应用的自动化部署

脚本不贴了,大概就是将代码包拉过来,然后启动进程

vim /root/restart-ecs.sh
#!/bin/bash
0********0

6)启动服务,发现服务已经注册到eureka,并测试接口正常。或者reboot重启服务器,看服务能否自启动

systemctl daemon-reload

systemctl enable run-script-when-shutdown
systemctl start run-script-when-shutdown

7)将服务器ecs-A打成一个自定义镜像

2、创建启动模板
1)实例规格选择计算型实例,按量付费
2)选择自定义镜像
3)需要配公网IP
4)使用镜像预设密码

创建成功如图
在这里插入图片描述

3、创建伸缩组
1)选用启动模板
2)始终使用最新版本
3)扩展启动模板配置中多选几个实例类型
4)实例移出策略:最早伸缩配置对应的实例、最早创建的实例
5)最小实例数:正式环境建议0,最大实例数:正式环境建议2
6)默认冷却时间:300
7)扩缩容策略:均衡分布策略
8)选择交换机:建议多选几个交换机,最少2个
9)添加已有实例:将基线服务器(线上两台加入)
10)通过阿里云slb转发流量的服务需要增加关联传统型负载均衡CLB(原SLB)

4、增加保护状态
将手动移入的实例设置为保护状态
最大实例数和最小实例数包含保护中的实例

5、创建伸缩规则和报警任务
一般伸缩规则就是加一台ecs/减一台ecs
一般报警任务是监控cpu
在这里插入图片描述

在这里插入图片描述
6、通过压力测试观察服务器扩缩容情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值