微服务架构 - 扩展



扩展是一个将软件分解成不同单元的过程。扩展也以可扩展性来定义。可扩展性是指实施应用程序更高级功能的潜力。它有助于提高应用程序的安全性、持久性和可维护性。行业中遵循三种类型的扩展程序。以下是不同的扩展方法以及相应的现实生活示例。

X 轴扩展

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

X-Axis Scaling

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

Y 轴扩展

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

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

Y-Axis Scaling

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

Z 轴扩展

X 和 Y 轴扩展非常容易理解。但是,一个应用程序也可以在业务级别进行扩展,这称为 Z 轴扩展。以下是将出租车服务应用程序扩展到不同业务部门垂直领域的示例。

Driver Management

扩展的优势

  • 成本 - 正确扩展软件将降低维护成本。

  • 性能 - 由于松耦合,正确扩展的软件的性能始终优于未扩展的软件。

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

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

广告