微服务分解策略-什么是微服务架构-软件架构
软件架构定义:
The software architecture of a computing system is the set of structures needed to reason about
the system, which comprise software elements, relations among them, and properties of both.
出自 《Documenting Software Architectures》
看起来比较抽象,借用Chris Richardson的解释就是:本质上应用架构是应用分解为不同的部分和这些部分之间的联系。分解是非常重要的:
1、让多个有专业知识的人或组尽可能高效的一起为一个应用工作。
2、定了软件元素怎么交互。
软件架构的4+1视图:
4+1视图是一个很好的描述应用架构的方法。
Logical view(逻辑视图):
开发者开发的元素。在对象导向的语言中,这些元素是类和包。元素之间的联系就是这些类和包之间的联系,包括继承、关联和依赖。
Implementation view(实现视图):
由构建系统模块产生,JAR文件、WAR文件或可执行文件。
Process view(进程视图):
运行时的组件。每一个元素是一个进程,进程之间的联系代表内部进程通信。
Deployment view(部署视图):
进程怎样映射到机器。这个视图的元素包括机器和进程。机器之间的联系代表网络。
scenario(场景):
描述了在特定视图不同架构组件为了处理一个请求怎样合作。在逻辑视图描述类怎么合作。类似的在进程视图描述进程之间怎样合作。