当前位置: 首页 > 科技观察

软件架构模式之微服务架构

时间:2023-03-21 18:35:40 科技观察

本文转载自微信公众号《架构改进之路》,作者的架构精炼之路。转载本文请联系建筑改良之路公众号。一、微服务架构简介微服务架构是一种架构概念,旨在通过将功能分解为离散的服务来解耦解决方案。您可以将其视为在架构级别而不是获取服务的类应用许多SOLID原则。微服务架构是一个非常有趣的概念。其主要作用是将功能分解为离散的服务,从而降低系统的耦合度,提供更灵活的服务支持。概念:将一个大型的单一应用程序和服务拆分成几个甚至几十个支持性的微服务,这样可以扩展单个组件而不是整个应用程序堆栈以满足服务级别协议。定义:围绕可以独立开发、管理和迭代的业务领域组件创建应用程序。在去中心化的组件中使用云架构和平台式部署、管理和服务能力使产品交付更加容易。本质:用一些功能更清晰、业务更精细的服务来解决更大更实际的问题。2.模式描述无论您使用何种实现风格和拓扑结构,都有几个共同的核心概念适用于该架构模式。第一种是分离已发布的单元(单独部署的单元)。如图所示,每个微内核的组件被分成一个独立的单元。微服务包含服务组件。不要考虑微内核的单一服务,最好考虑服务组件。从粒度上看,它可以是一个单一的模块,也可以是一个大型应用,代表一个单一的功能(提供天气预报或图片存储)。正确设计服务组件的粒度是一个很大的挑战。另一个关键概念是微内核是分布式的。这意味着服务组件可能是远程方法(通过JMS、AMQP、REST、SOAP、RMI等)。分布式意味着这种模型可以构建大规模的应用程序。另一个令人兴奋的特性是它可以从其他有问题的架构模式中演变而来,而不是被创建并等待问题发生。当你遇到一些无法解决的问题,尤其是互联网公司规模扩大的时候,正是引入微服务架构的好时机。一般会从两种模式演化而来:一种是一开始就是一个整体的应用,所有模块紧耦合;另一种是面向服务的架构模式(SOA,service-orientedarchitecturepattern)。SOA不错,但理解和实施它的成本太高。3.Schema拓扑微服务的实现方式有很多种。三种最常见和流行的方法是:基于APIREST、基于应用程序REST和集中式消息传递。APIREST-based适合网站提供小规模、独立的服务。许多Internet站点都提供此类服务,例如OAuth2服务。基于REST的应用程序与上述架构不同,客户端看到的是Web界面或富客户端程序,而不是调用API。UI层独立发布,可以访问服务组件。中央消息模式,与之前的模式类似,但使用轻量级的消息代理来替代RESTful服务调用。这种轻量级代理不会进行服务编排、传输和路由,这与SOA不同。不要将其视为简化版的SOA。4.架构考虑微服务架构解决了整体代码没有架构的应用问题和SOA的问题。同时还可以提供实时的产品发布。是分布式架构,也会有上面的分布式问题。微服务模型优缺点分析:整体灵活性:高发布易用性:高可测试性:高性能:低规模可扩展性:高开发易用性:高5.总结微服务作为一个单一的整体程序和面向服务的架构作为替代方案,微服务架构模式在业界迅速取得了进展。这种模式还在不断演进,业界对其特点和实现方式还存在一定的困惑。对于我们的思维,更多的是思维的转变。对于微服务架构:技术上不是问题,意识比工具更重要。