微服务架构有哪些
小伙伴们知道常用的微服务架构框架有哪些吗?上回我们介绍了一些常用的微服务架构设计模式,这次我们就来了解一下一些常用的微服务架构框架吧。
一、Dubbo
Dubbo框架是由阿里巴巴开发的开源式的分布式服务化治理框架,它会通过RPC请求方式访问。Dubbo是在阿里巴巴的电商平台中逐渐探索演进所形成的,经历过复杂业务的高并发挑战,现在许多大企业都使用的都是Dubbo。
二、Dropwizard
Dropwizard框架集中了Java生态系统中各个问题域里最好的组件集成于一身,它能够极快的打造一个Rest风格的后台,还可以整合Dropwizard核心以外的项目。与Spring Boot相较,Dropwizard在轻量化上更有优势。
三、Akka
Akka是一个用Scala编写的库,可以用在有简化编写容错、高可伸缩性的Java和Scala的Actor模型,使用Akka能够实现微服务集群。
四、Spring Boot
Spring Boot的设计目的是简化新Spring应用初始搭建以及开发过程,可以说是目前大众中最受欢迎的微服务开发框架。利用Spring Boot开发的便捷度简化分布式系统基础设施的开发,比如像配置中心、注册、负载均衡等方面都可以做到一键启动和一键部署。
五、Spring Cloud
Spring Cloud不是一个单独框架,它是一整个系列的框架合计,它是基于HTTP(s)的RETS服务构建服务体系的。Spring Cloud能够帮助架构师构建一整套完整的微服务架构技术生态链。
六、Node.js相关微服务框架
Seneca
Seneca是Node.js的微服务框架开发工具,适用于编写可用于产品环境的代码。
Hapi/Restify/LoopBack
三种Node.js相关微服务框架,它们三个分工不同,前两种适合开发简单的微服务后端系统,第三种更适合用在大型复杂应用开发,还可以用在现有微服务上的构建。
七、Python相关微服务框架
Python相关微服务架构较少,一般使用较多的都是Nameko。Nameko使得微服务实现变得更加简单,同时也提供了非常多的功能,如负载均衡、服务发现及依赖自动注入等,使用起来非常方便,但美中不足的有限速、超时和权限机制不完善等缺点。
微服务架构设计模式
1.聚合器微服务设计模式
这是一种最常见也最简单的设计模式
聚合器调用多个服务实现应用程序所需的功能。它可以是一个简单的 WEB 页面,将检索到的数据进行处理展示。它也可以是一个更高层次的组合微服务,对检索到的数据增加业务逻辑后进一步发布成一个新的微服务,这符合DRY原则。另外,每个服务都有自己的缓存和数据库。如果聚合器是一个组合服务,那么它也有自己的缓存和数据库。聚合器可以沿X轴和Z轴独立扩展。
2.代理微服务设计模式
这是聚合模式的一个变种,如下图所示
在这种情况下,客户端并不聚合数据,但会根据业务需求的差别调用不同的微服务。代理可以仅仅委派请求,也可以进行数据转换工作。
3.链式微服务设计模式
这种模式在接收到请求后会产生一个经过合并的响应,如下图所示
在这种情况下,服务A接收到请求后会与服务B进行通信,类似地,服务B会同服务C进行通信。所有服务都使用同步消息传递。在整个链式调用完成之前,客户端会一直阻塞。因此,服务调用链不宜过长,以免客户端长时间等待。
4.分支微服务设计模式
这种模式是聚合器模式的扩展,允许同时调用两个微服务链,如下图所示
5.数据共享微服务设计模式
自治是微服务的设计原则之一,就是说微服务是全栈式服务。但在重构现有的“单体应用(Monolithic Application)”时,SQL 数据库反规范化可能会导致数据重复和不一致。因此,在单体应用到微服务架构的过渡阶段,可以使用这种设计模式,如下图所示
在这种情况下,部分微服务可能会共享缓存和数据库存储。不过,这只有在两个服务之间存在强耦合关系时才可以。对于基于微服务的新建应用程序而言,这是一种反模式。
6.异步消息传递微服务设计模式
虽然 REST 设计模式非常流行,但它是同步的,会造成阻塞。因此部分基于微服务的架构可能会选择使用消息队列代替 REST 请求/响应,如下图所示
责任编辑:YYX
-
数据共享
+关注
关注
0文章
56浏览量
10870 -
微服务架构
+关注
关注
0文章
23浏览量
2951 -
Dubbo
+关注
关注
0文章
19浏览量
3170
发布评论请先 登录
相关推荐
评论