利用阿里云 LBS 做负载均衡

年关将近,不少朋友开始做年会抽奖,几千人的抽奖节目会瞬间涌入大量请求,单台服务器无法胜任,需要多个服务器打配合战。基于阿里云提供的 LBS、ECS、RDS,我们有非常简单的方案。

武器库:

  • 对外域名 example.com
  • ECS1:公网 IP 200.114.5.36,内网 IP 192.1.1.100
  • ECS2:公网 IP 200.114.5.37,内网 IP 192.1.1.101
  • LBS:公网IP 222.1.1.1
  • RDS:账号信息 -h 192.1.1.102 -P 3306 -utest -ptest

步骤:

  1. example.com DNS 解析指向 LBS 222.1.1.1
  2. LBS 后台添加 ECS1 和 ECS2,对外端口 80,对内端口 80,加权轮询策略,会话保持3600秒
  3. ECS1 和 ECS2 中的应用数据库使用 RDS,应用 session 保存在 RDS。图片等存储最好使用 OSS,如果不是 OSS 少数场景可能存在少许问题,这里不展开。

搞定!负载均衡的效果如下:

[lbs@test ~]# curl http://100.114.1.12/index.html
Reply from 184 server
[lbs@test ~]# curl http://100.114.1.12/index.html
server 222 OK
[lbs@test ~]# curl http://100.114.1.12/index.html
Reply from 184 server
[lbs@test ~]# curl http://100.114.1.12/index.html
Reply from 184 server
[lbs@test ~]# curl http://100.114.1.12/index.html
Reply from 184 server
[lbs@test ~]# curl http://100.114.1.12/index.html
server 222 OK
[lbs@test ~]# curl http://100.114.1.12/index.html
server 222 OK
[lbs@test ~]# curl http://100.114.1.12/index.html
server 222 OK
[lbs@test ~]# curl http://100.114.1.12/index.html
Reply from 184 server
[lbs@test ~]# curl http://100.114.1.12/index.html
server 222 OK

目前阿里云 LBS 内网负载均衡功能是免费的,用于做实验足够。如果希望对外服务,则需要付费购买 LBS 外网服务。本质就是给你分配一个外网 IP,走外网流量。

附:Session 同步问题

  • LBS 支持会话保持,但并不支持 session 同步。所谓会话保持,是指来自同一个 用户的请求会在一段时间内路由到同一个 ECS;session 同步是指一个用户的 session 数据保持在多个 ECS 中,无论用户请求哪个 ECS, session 数据都存在。

  • 阿里云 LBS 不支持 session 同步的原因: session 同步是应用层的事情,底层软件无法感知 session。默认情况下 php 将 session 数据保存在磁盘文件中,PHP 配置文件中 session.save_path 负责session文件的存放位置。

  • 应用层 session 同步方案:把 session 保存在数据库中,如 RDS 、Memcached、Redis 等。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值