产品中心-安徽云迪科技信息有限公司最新动态,让您更多的了解云迪

负载均衡

在使用负载均衡前,您需要根据您的业务确定负载均衡的监听类型和网络类型等。

规划实例地域

在选择地域时,请注意:

  • 为了减少延迟并提高下载速度,建议选择离您客户最近的地域。
  • 为了提供更加稳定可靠的服务,阿里云负载均衡已在大部分地域提供主备可用区,实现同地域下的跨机房容灾。建议您选择提供主备可用区的地域。
  • 由于负载均衡不支持跨地域部署,因此应选择与后端ECS实例相同的地域。

选择实例的网络类型(公网或私网)

负载均衡提供面向公网和内网的负载均衡服务:

  • 如果您需要使用负载均衡分发来自公网的请求,选择创建公网负载均衡实例。

    公网负载均衡实例提供一个公网IP,用来接收来自Internet的请求。

    对于公网负载均衡实例,您还需要选择实例的计费方式:
    • 按流量计费:适用于波峰波谷效应明显的业务。
    • 按带宽计费:适用于带宽较为平稳的业务。
  • 如果您需要使用负载均衡分发来自内网的请求,选择创建私网负载均衡实例。

    私网负载均衡实例仅提供阿里云私网IP,只能通过阿里云内部网络访问该负载均衡服务,无法从Internet访问。

选择实例规格

负载均衡于2018年4月1日推出了性能保障型实例,您可以独享已购实例的资源,更好地保障服务的可用性。负载均衡提供六种实例规格供您选择:

  • 对于按量付费实例,建议您直接选择可以买到的最大规格,这样可以保证业务的灵活性(弹性),且不会让您额外多付出成本。但如果您认为您的业务量不太可能到达超强型I(slb.s3.large),也可以设置一个合理的弹性上限,比如高阶型II(slb.s3.medium)。
  • 对于预付费实例,您需要评估您的实际业务量,然后选择一个较合适的规格,对于业务量评估来说,主要参考下面几个原则:
    • 如果是四层监听,关注的重点是长连接的并发连接数,那么最大(并发)连接数应当作为一个关键指标来参考。根据不同的业务场景,您需要预估一个负载均衡实例需要承载的最大并发连接数,并选择相应的规格。
    • 如果是七层监听,关注的重点是QPS的性能,QPS决定了一个七层应用系统的吞吐量。同样,您也需要根据经验对QPS进行预估。在初步选定一个规格后,在业务压测和实测过程中对规格进行微调。
    • 结合与性能保障型实例一起推出的其它关键监控指标,查看实际业务流量的走势、峰值情况,对性能规格进行更加精确的选取。

选择协议类型

阿里云提供基于四层(TCP协议和UDP协议)和七层(HTTP协议和HTTPS协议)的应用的负载均衡:

  • 四层监听将请求直接转发给后端服务器,不会修改标头。客户端请求到达负载均衡监听后,负载均衡服务器会使用监听中配置的后端端口与后端服务器建立TCP连接。
  • 七层监听原理上是反向代理的一种实现。客户端请求到达负载均衡监听后,负载均衡服务器会通过与后端服务器建立TCP连接,即再次通过新TCP连接HTTP协议访问后端,而不是直接转发报文到后端ECS。

    由于七层监听比四层监听在底层实现上多了一个Tengine处理环节,因此,七层监听性能没有四层好。此外,客户端端口不足、后端服务器连接过多等场景也可能导致七层服务性能不高,如果您对性能有很高的要求,建议您使用四层监听。

    更多详细信息,参见协议说明

准备后端服务器

在使用负载均衡服务前,您需要创建ECS实例并部署相关应用,然后将ECS实例添加到负载均衡实例中来处理转发的客户端请求。

创建ECS时,请注意:
  • ECS实例的地域和可用区

    确保ECS实例的地域和负载均衡实例的地域相同。此外,建议您将ECS部署在不同的可用区内,提高可用性,ECS实例的创建详情请参见使用向导创建实例

    本教程中,在华东1地域创建了两个ECS实例,为了便于辨识,将实例分别命名为ECS01和ECS02,如下图所示。

  • 应用配置
    本教程中,分别在ECS01和ECS02两个实例上使用Apache搭建了两个静态网页,如下图所示。
    • 在浏览器中输入ECS01实例绑定的弹性公网IP地址:


    • 在浏览器中输入ECS02实例绑定的弹性公网IP地址:


    在ECS上部署好应用后,不需要再进行特别的配置。但如果您要配置一个四层监听(TCP协议或UDP协议),并且ECS使用的是Linux系统,确保ECS实例上/etc/sysctl.conf目录下net.ipv4.conf文件中的以下三个参数的值为零:
     net.ipv4.conf.default.rp_filter = 0 net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.eth0.rp_filter = 0