深入解析微服务架构:原理、特性与优势
1. 微服务架构的结构变革
在新的架构呈现中,没有引入新的模块,而是保留了单体架构中现有的模块,同时对软件模块的结构和技术基础设施进行了显著改变。
传统的三层或 n 层分布式架构中,应用内有多个层级,如客户端层、表示层、业务层等,这些层级可部署到不同的分布式进程空间。而微服务架构则旨在将这些层级整合在一起,但这并非绝对规则。将微服务的不同层级紧密结合,甚至放在单个进程中,可带来诸多优化,如提高响应时间、确保可靠通信等。
微服务可看作是遵循层和层级实践构建的“微单体”,其边界应清晰可辨,且能在无外部依赖的情况下独立运行和提供服务。这体现在物理工件(如二进制文件、库和脚本)以及运行时所需的依赖(如容器服务或持久化服务)上。每个微服务拥有自己的数据库(或在共享数据库中有自己的模式),以实现数据独立性,同时表示服务通常也包含在微服务包中。
2. 理解自包含的微服务
微服务对面向服务架构(SOA)友好,需要 HTTP 服务器服务来暴露 SOA 或 REST 接口。与传统单体应用部署到 HTTP 容器的 web - app 文件夹不同,微服务嵌入了轻量级 HTTP 监听器,无需外部或独立的容器或服务器。
在 Java 领域,传统部署会将 .ear 或 .war 文件部署到 JBoss 等应用服务器或 Tomcat 等 Web 服务器,而微服务则没有 Web 服务器或 .war 文件,每个服务在 JAR 文件中都有自己的嵌入式 HTTP 监听器,如 Jetty、Tomcat 或 Undertow。构建微服务时,构建阶段会创建包含服务运行时(如上述 HTTP 监听器)的“可执行胖 JAR”文件。
微服务架构核心优势解析
超级会员免费看
订阅专栏 解锁全文
10万+

被折叠的 条评论
为什么被折叠?



