微服务架构有哪些(微服务架构设计模式)

微服务架构:有合作伙伴知道常用的微服务架构框架有哪些吗?上次我们介绍了一些常用的微服务架构设计模式,这次我们来看看一些常用的微服务架构框架。

一、微博

Dubbo framework是阿里巴巴开发的开源分布式服务治理框架,将通过RPC请求访问。Dubbo是阿里巴巴电子商务平台逐步探索演变形成的。它经历了复杂业务的高并发挑战,现在很多大型企业都在用Dubbo。

二、拖放向导

Dropwizard的框架集成了Java生态系统中各个问题域最好的组件,可以快速创建Rest风格的后台,集成Dropwizard核心之外的项目。与Spring Boot相比,Dropwizard在轻量化方面更有优势。

三、Akka

Akka是用Scala编写的库,可以用在Java和Scala的Actor模型中,编写简单,容错性好,扩展性高。使用Akka,可以实现微服务集群。

四、弹簧靴

Spring Boot旨在简化新的Spring应用的初始构建和开发过程,可以说是目前最受大众欢迎的微服务开发框架。利用Spring Boot的便利,简化分布式系统基础设施的开发,如配置中心、注册、负载均衡等,可以实现一键启动,一键部署。

五、春云

Spring Cloud不是一个单一的框架,而是一整套框架,它基于HTTP(s)的RETS服务构建了一个服务系统。春云可以帮助架构师构建一整套微服务架构技术生态链。

六、Node.js相关微服务框架

塞内卡

Seneca是Node.js的微服务框架开发工具,适合编写可以在生产环境中使用的代码。

哈比神/Restify/回送

Node.js相关的微服务框架有三种,分工不同。前两种适合开发简单的微服务后端系统,第三种更适合开发大型复杂应用,也可以用于构建现有的微服务。

七、与Python相关的微服务框架

Python相关的微服务架构较少,常用的是Nameko。Nameko使微服务的实现变得更加容易,还提供了负载均衡、服务发现和依赖自动注入等多种功能。用起来很方便,但美中不足的是有限速、超时、权限机制不完善等缺点。

微服务架构设计模式1。聚合器微服务设计模式

这是最常见和最简单的设计模式之一。

聚合器调用多个服务来实现应用程序所需的功能。它可以是一个简单的网页,处理并显示检索到的数据。也可以是更高层次的复合微服务,将检索到的数据加入业务逻辑,然后进一步发布为新的微服务,符合干原理。此外,每个服务都有自己的缓存和数据库。如果聚合器是一个复合服务,它也有自己的缓存和数据库。聚集器可以沿着X轴和Z轴独立扩展。

2.代理微服务的设计模式

这是聚合模式的一种变体,如下图所示。

这种情况下,客户端并不聚合数据,而是会根据业务需求的不同调用不同的微服务。代理只能委托请求,也可以进行数据转换。

3.链式微服务设计模式

这种模式在收到请求后会产生一个合并的响应,如下图所示。

在这种情况下,服务A将在收到请求后与服务B通信,同样,服务B将与服务C通信.所有服务都使用同步消息传递。客户端将阻塞,直到整个链调用完成。所以服务调用链不能太长,避免客户端长时间等待。

4.分行微服务设计模式

该模式是聚合器模式的扩展,允许同时调用两个微服务链,如下图所示。

5.数据共享微服务的设计模式

自治是微服务的设计原则之一,也就是说微服务是全栈服务。然而,在重构现有的“单片应用程序”时,SQL数据库的反规范化可能会导致数据重复和不一致。因此,这种设计模式可以用在从单一应用程序到微服务架构的过渡阶段,如下图所示。

在这种情况下,一些微服务可能会共享缓存和数据库存储。然而,这只有在两个服务之间存在强耦合关系的情况下才有可能。这是基于微服务的新应用的反模式。

6.异步消息传递微服务设计模式

虽然REST设计模式非常流行,但它是同步的,会导致拥塞。因此,一些基于微服务的架构可能会选择使用消息队列,而不是REST请求/响应,如下图所示。