Microservice Architecture 简明教程
Microservice Architecture - Scaling
伸缩是将软件分解为不同单元的过程。伸缩还从可伸缩性的角度进行定义。可伸缩性是实现应用程序更多高级功能的潜力。它有助于提高应用程序的安全性、持久性和可维护性。我们在行业中采用了三种类型的伸缩程序。以下是不同的伸缩方法以及相应的真实示例。
X-Axis Scaling
X 轴伸缩也称为水平伸缩。在此过程中,整个应用程序被细分为不同的水平部分。通常,任何 Web 服务器应用程序都可以进行这种类型的伸缩。考虑一个遵循水平伸缩的普通 MVC 架构,如下图所示。
例如,我们可以考虑任何 JSP servlet 应用程序。在此应用程序中,控制器控制每个请求,并且它会在必要时与模型通信以生成视图。通常,单体应用程序遵循这种伸缩方法。X 轴伸缩本质上非常基本,并且非常省时。在此方法中,将根据单元负责的不同任务对一款软件进行伸缩。例如,控制器负责控制传入和传出的请求,视图负责向浏览器中的用户表示业务功能,而模型负责存储我们的数据并充当数据库。
Y-Axis Scaling
Y 轴伸缩也称为垂直伸缩,包括任何资源级伸缩。任何 DBaaS 或 Hadoop 系统都可以被认为是 Y 轴伸缩。在此类型的伸缩中,用户请求被重定向并受到限制,方法是实现一些逻辑。
让我们以 Facebook 为例。Facebook 每秒需要处理 179 万用户;因此,控制流量是 Facebook 网络工程师的巨大责任。为了克服任何危险,他们遵循 Y 轴伸缩,其中包括同时运行具有相同应用程序的多个服务器。现在,为了控制这种巨大的流量,Facebook 将所有流量从一个区域重定向到特定服务器,如下图所示。基于区域的这种流量传输在架构语言中称为负载平衡。
将资源分解为小型独立业务单元的这种方法称为 Y 轴伸缩。