微服务架构 - 扩展


扩展是将软件分解为不同单元的过程。缩放还定义了可扩展性。可扩展性是实现应用程序更高级功能的潜力。它有助于提高应用程序的安全性、耐用性和可维护性。我们在行业中遵循三种类型的扩展程序。以下是不同的缩放方法以及相应的现实示例。

X 轴缩放

X 轴缩放也称为水平缩放。在此过程中,整个应用程序被细分为不同的水平部分。通常,任何 Web 服务器应用程序都可以具有这种类型的扩展。考虑一个遵循水平扩展的普通 MVC 架构,如下图所示。

X 轴缩放

作为一个例子,我们可以考虑任何 JSP servlet 应用程序。在此应用程序中,控制器控制每个请求,并在必要时通过与模型通信来生成视图。通常,单片应用程序遵循这种扩展方法。X 轴缩放本质上是非常基本的,并且耗时非常少。在这种方法中,一个软件将根据该单元负责的不同任务进行扩展。例如,控制器负责控制传入和传出请求,视图负责在浏览器中向用户表示业务功能,而模型负责存储我们的数据,它充当数据库。

Y 轴缩放

Y 轴缩放也称为垂直缩放,包括任何资源级别缩放。任何 DBaaS 或 Hadoop 系统都可以被认为是 Y 轴缩放的。在这种类型的扩展中,通过实现某些逻辑来重定向和限制用户请求。

让我们以 Facebook 为例。Facebook每秒需要处理179万用户;因此,控制流量是 Facebook 网络工程师的一项巨大责任。为了克服任何危险,他们遵循 Y 轴扩展,其中包括同时运行具有相同应用程序的多个服务器。现在,为了控制如此巨大的流量,Facebook 将所有流量从一个区域重定向到特定服务器,如图所示。这种基于区域的流量转移在架构语言中称为负载均衡。

Y 轴缩放

这种将资源分解为小的独立业务单元的方法称为 Y 轴扩展。

Z 轴缩放

X 轴和 Y 轴缩放更容易理解。然而,一个应用程序也可以在业务层面进行扩展,这称为Z轴扩展。以下是在不同垂直业务部门扩展出租车服务应用程序的示例。

司机管理

扩展的优点

  • 成本- 软件的适当扩展将降低维护成本。

  • 性能- 由于松散耦合,适当缩放的软件的性能始终优于未缩放的软件。

  • 负载分布- 使用不同的技术,我们可以轻松维护服务器负载。

  • 重用- 软件的可扩展性也提高了软件的可用性。