微服务架构入门(Micro-Architecture)
Posted 程序你好
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微服务架构入门(Micro-Architecture)相关的知识,希望对你有一定的参考价值。
本文对微服务架构的概念做了基本的介绍,对没有微服务体系结构经验和相关概念的开发人员来说是很好的入门文章。
微服务架构(MSA)正在成为代替SOA的一种方案。与SOA改进企业软件架构的方式一样,围绕iT的新模式和体系结构,微服务体系结构(Microservices architecture, MSA)构建企业软件的过程中,也出现了一些新的架构风格和新概念。
比如:
Service Mesh服务网格-在微服务之间进行通信的一种技术。
Serverless在云中运行您的代码作为函数。
Micro-Integration微集成——将集成作为微服务运行。
Micro-Gateway微网关——以一种与微服务兼容的方式运行您的API网关。
所有这些架构都可以被归类到“微服务”的概念下,并被称为“微架构”。在这篇文章中,我将介绍微型架构以及如何在这样的体系结构中使用微API网关。
Figure 1: 微服务架构
如上图所示,微型架构与任何类型的基础设施、供应商或技术无关。它是一个开放的体系结构,可以使用最适合的技术或特定企业的供应商来实现。让我们更深入地了解微观架构。
我们有三组不同颜色的微服务。从MS开始的微服务是真正的后端业务逻辑实现。MS-X和MS-Y描述了两组微服务(例如银行系统中的贷款和存款微服务组)。每个hexagon描述一个负载均衡,高度可用的微服务(例如Kubernetes服务)。标记为MI的六边形是集成微服务,它集成了现有的微服务(MS类型),并提供了复杂的高级功能。
连接微服务的箭头描述了服务网格的功能,在内部,它使用sidecar代理(或不使用,具体情况取决于你所选的技术栈)。该组件提供了在传输层(L3/L4)上的超时、重试、断路器、服务发现和负载平衡等功能。然后,通过服务网格的控制来完成服务网格的配置。
我们还有三个菱形,它们演示了API微网关功能,这些网关提供了如安全、缓存、节流、速率限制和分析等功能,以供上层的微服务层使用。在这张图中,我们为三组微服务使用了三种不同的微网关。以方便我们扩展,每个MS或MI都可以有自己的微网关。
微API网关是这个体系结构中的一个特殊组件,因为它具有一些其他组件中已经具备的横切 (cross-cutting) 特性。如果我们使用服务网格的功能,它有一些功能,如负载平衡、服务发现和断路器,这些功能已经在微网关中可用。重要的是要了解这些功能可用于内部的、内部的微服务通信,而微网关则使用这些功能来对外公开服务。这意味着我们不能忽略服务网格体系结构中API网关的必要性。
另外一个横切组件是微集成层(cross-cutting)组件是微集成层( micro-integration layer),这里可能与服务微API网关有些重复,提供,如服务编排、转换和组合等功能。我们还需要清楚地认识到,微集成层为内部服务和开发人员级别提供了这些功能。但是,微网关上可用的功能类型更多地指向外部用户交互层,有时用户可以直接使用这些特性,比如API组合来构建自己的API。
另一方面,不推荐使用微API网关作为服务网格或微集成层的替代,尽管在某些情况下它可以达到目的。当您的系统在将来增长时,这种方法将引入更多的复杂性。
对开发人员来说,在这个微架构中的另一个好处是无服务器Serviceless(or Function as a Service - FaaS)能力。任何技术供应商都可以将基础架构层与位于其数据中心上的微网关和微集成功能结合起来,为客户提供无服务器服务,这样客户就可以用他们喜欢的编程语言编写他们的实现,并在他们的基础架构下将其作为微服务运行。在一个无服务器的世界中,ms类型的实现将由用户完成,所有其他组件将由云提供商部署、托管和维护。
最后,应用程序可以通过接触相关的微网关来使用相关的api。基于应用程序类型和API需求,同样的应用程序也可以使用所有的微网关。
作为本文的最后一部分,我将分享一些可以来实现这个微型架构的现有技术。
Microservices |
Micro-Integrations |
Service Mesh |
Micro-Gateway |
Java (SpringBoot, DropWizard) |
Ballerina |
LinkerD |
WSO2 APIM |
javascript (NodeJs) |
Java (Spring Boot) |
Istio/envoy |
Apigee |
Go |
Kong |
Infrastructure |
Containerization |
Orchestration |
IaaS (GCP, AWS, Azure) |
Docker |
Kubernetes |
VM (VMWare) |
Rocket |
Docker Swarm |
Physical |
Mesos DC/OS |
以上是关于微服务架构入门(Micro-Architecture)的主要内容,如果未能解决你的问题,请参考以下文章
SpringCLoud实战微服务之——微服务简介以及入门使用