微服务架构--拆分【翻译】

java技术文章

2018-12-14

23

0

拆分是拆分一个软件成不同单元的一个过程。拆分也被定义为可扩展性的术语。可扩展性是可以实现应用更好的优势性能。它帮助改进软件安全,耐久性和可维护性。在企业级中,我们有三种类型的拆分章程遵循。下面是不同的拆分方法论并有着相应真实的例子。
 

X轴拆分

X轴拆分也被称为水平拆分。在这个步骤中,整个应用程序被细分成不同的水平部分。大部分情况下,任何web服务应用都可以使用这种类型拆分。考虑一个平常MVC架构按照如下水平拆分,如下图所示。
作为一个实例,我们可以考虑任何JSP servlet应用程序。在这个应用中,控制层控制每一个请求并且通过模型层传输生成一个视图,一般情况下,整个应用采用这种拆分方法。X轴拆分在自然界中是一种基础的方法,并且耗时非常的少。在这个方法中,一个软件将根据单元所负责的不同的任务进行拆分。例如:控制层负责控制请求的输入和输出,视图负责在浏览器中展示业务功能给用户,而模型层负责存储我们的数据,并且它是作为数据库工作。
 

Y轴拆分

Y轴拆分也被称为垂直拆分,包括资源级别的拆分,任何DBaaS和Hadoop系统可以被人为是X轴拆分。在这种类型的拆分中,通过实现一些逻辑将用户请求重定向或者限制住。
 
让我们用facebook作为一个参考。facebook需要每秒钟控制179万用户量;因此,控制传输是facebook网络引擎的一个巨大的任务。为了解决这些问题,他们采用了Y轴拆分,包括在同一时间使用多个服务运行同样的应用。现在为了大数据量基本的传输,facebook重定向所有的传输从一个区域到一个指定服务,就像图片描述的一样。这样基于区域的转移传输用架构语言叫做负载均衡。
这种方法将资源拆分到小的依赖业务单元被称为Y轴拆分。
 

Z轴拆分

X和Y轴拆分是非常优美的并且容易理解。然而,一个应用也能拆分成业务级别,我们称为Z轴拆分。下面的例子显示在不同的垂直业务单元拆分一个出租车服务应用。

拆分的优势:

成本---适当的拆分一个软件将降低维护成本。
性能---由于松耦合,一个适当拆分软件的性能要优于没拆分的软件。
加载分布式--使用不同的技术,我们能容易的维护我们服务加载。
重用---软件的可扩展性增加了软件的可用性

发表评论

全部评论:0条

鸿福951

努力打造一个好用的webui

热评文章

推荐文章