微服务架构-基础
什么是微服务?
微服务是一种分布式系统解决方案,推动细粒度服务的使用,这些服务协同工作,且每个服务都有自己的生命周期。因为微服务主要围绕业务领域,所以避免了由传统的分层架构引发的很多问题。
什么是系统架构?
系统架构设计描述了在应用系统的内部,如何根据业务、技术、组织、灵活性、可扩展性以及可维护性等多种因素,将应用系统划分成不同的部分,并使这些部分彼此之间相互分工、相互协作,从而为用户提供某种特定价值的方式。
随着面向对象分析、设计模式、企业架构模式等方法谇的深入人心,从功能实现、代码组织的角度考虑,系统中不同职责的部分逐渐被划分到了如下三个层次:
- 表示层,聚焦数据显示和用户交互
- 业务逻辑层,聚焦业务逻辑处理
- 数据访问层,聚焦数据的存储与访问
三层架构的优势
三层架构的出现,一方面是为解决应用程序中代码间调用复杂,代码职责不清的问题。其通过在各层间定义接口,并将接口与实现分离,可以很容易地用不同的实现来替换原有层次的实现,从而有效降低层与层之问的依赖。这种方式不仅有利于帮助团队理解整个应用架构,降低后期维护成本,同时也有利于制定整个应用程序架构的标准。
什么是微服务架构?
微服务架构模式(Microservice Architect Pattern)是近两年在软件架构模式领域出现的一个新名词。但是确很难对微服务下一个准确的定义,在业界的讨论来看,微服务本身并没有一个严格的定义。下面摘抄ThoughtWorks首席科学家--马丁*福勒对微服务的一段描述:
微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于HTTP的Restful Api)。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建。