当您使用EDAS将应用托管到多个ECS上,并且需要统一流量入口时,您可以为EDAS应用绑定CLB实例,将应用实例作为CLB的后端,由CLB根据转发策略将流量分发到不同的应用实例。
企业级分布式应用服务EDAS简介
企业级分布式应用服务EDAS(Enterprise Distributed Application Service)是一个应用托管和微服务管理的云原生PaaS平台,提供应用开发、部署、监控、运维等全栈式解决方案,同时支持Spring Cloud和Apache Dubbo(以下简称Dubbo)等微服务运行环境,助力您的应用轻松上云。
详细介绍可参考什么是企业级分布式应用服务EDAS。
CLB如何结合EDAS使用
EDAS支持在阿里云ECS集群和混合云ECS集群上托管应用,您可以使用EDAS的ECS环境托管Spring Cloud和Dubbo等主流Java微服务框架应用,也可以托管HSF框架应用。应用托管到EDAS平台后,应用的多个实例需要作为一个整体对外提供服务,因此应用的流量要有一个统一的入口,需要一个能够根据转发策略将访问流量分发到后端应用不同实例的流量分发控制服务。
EDAS应用以CLB作为流量入口,将应用实例作为CLB的后端,由CLB根据转发策略,将流量分发到不同的应用实例。EDAS应用绑定CLB如下图所示:
一个多机部署的应用能够结合CLB以保证应用的高可用,降低单台服务器的负载,实现流量的分发。CLB能够配置调度后端服务器的算法,如轮询、加权轮询。若开启会话保持功能,来自同一台客户端请求将转发到同一台应用服务器后端,以提高访问性能。
公网CLB和私网CLB的结合使用,能够提供Web应用的外部公网访问能力。后端服务器通过私网CLB进行通信,能够实现前端Web应用和后端应用分离,根据前后端服务性能需求的不同,各自进行后端服务器扩展。
CLB基于端口创建监听,通过规划应用后端服务器组,支持多个应用复用一个CLB。此外,七层负载均衡支持基于域名和URL配置转发规则。
应用跨区域部署并结合CLB能够支持应用跨区域容灾。在不同地域下部署负载均衡实例,并分别挂载相应地域内不同可用区的ECS服务器。上层利用云解析做智能DNS,将域名解析到不同地域的负载均衡实例服务地址下,可实现全局负载均衡。当某个地域出现不可用时,暂停对应解析即可实现所有用户访问不受影响。
CLB支持对DDoS、SYN Flood、UDP Flood、ACK Flood、ICMP Flood、DNS Flood等攻击防护,七层负载均衡还能额外支持一键集成WAF(Web Application Firewall),让应用层更加可靠。
EDAS应用在使用负载均衡时,根据场景不同,分为以下使用方式:
单应用独享负载均衡实例。
多应用共享负载均衡实例。
本文以公网负载均衡实例为例,介绍上述两种使用场景,私网负载均衡实例的操作方式与公网一致,需要您注意的是验证的时候需要选择相对应的网络环境。
单应用独享负载均衡实例
在EDAS控制台中,允许为单个应用配置独享的负载均衡实例。如下图所示,在一个EDAS集群中部署了2个应用,分别是App1和App2,App1包含3个实例,App2包含2个实例,可以分别为每个应用绑定单独的CLB。在EDAS控制台中绑定CLB时,EDAS会为应用创建CLB服务器组,然后将应用实例所在的ECS添加到服务器组中。
由于每个应用独占一个CLB实例,因此应用可以独占CLB的资源和带宽,每个应用的QPS取决于单个CLB的规格。
创建CLB实例,本文以创建的CLB名称为edas-test-CLB进行说明。具体操作,请参见创建实例。
登录EDAS控制台创建ECS类型的应用。本文以创建的应用名称为spring-cloud-provider进行说明,具体操作,请参见在ECS集群中创建并部署应用。
在应用管理 > 应用列表页面顶部菜单栏选择地域,在页面中选择所属微服务空间,在集群类型下拉列表中选择ECS集群,然后单击目标应用名称。
在基本信息页面中基本信息页签的应用设置区域,单击负载均衡(公网)右侧的添加。
在弹出的页面中,选择创建好的CLB,并完成监听和服务器组配置。完成后单击确认变更。
创建完成后,在应用基本信息页可以查看CLB的地址和端口,也可以对CLB进行修改和解绑。
EDAS中为应用绑定独享负载均衡实例的详细操作流程请参见应用独享负载均衡实例。
多应用共享负载均衡实例
为了降低成本,减少CLB的实例数,EDAS允许为多个应用共享一个CLB。如下图所示,在一个EDAS集群中部署了2个应用,分别是App1和App2,App1包含3个实例,App2包含2个实例,两个应用共享同一个CLB实例。在EDAS控制台为应用绑定CLB时,EDAS会分别为每个应用在共享CLB实例中创建服务器组,然后将应用实例所在的ECS添加到服务器组中。由于多个应用共享同一个CLB实例,因此应用会共享CLB的资源和带宽。
如图所示,CLB的入口流量可以根据流量转发规则将流量转发到不同的服务器组,从而将流量分发到不同的应用中。
支持两种流量分发规则:
使用端口实现流量分发。
使用域名或URL实现流量分发。