
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
微服务架构是随着互联网的不断发展而被程序员所掌握的一种软件开发架构方式,而今天我们就一起来了解一下,微服务架构都有哪些常见模式应用。
API网关模式
当一个应用程序被分解成多个较小的微服务时,这里会出现一些需要解决的问题:
存在不同渠道对多个微服务的多次调用
需要处理不同类型的协议
不同的消费者可能需要不同的响应格式
API网关有助于解决微服务实现引发的诸多问题,而不仅限于上述提到的这些。
API网关是任何微服务调用的单一入口点
它可以用作将请求路由到相关微服务的代理服务
它可以汇总结果并发送回消费者
该解决方案可以为每种特定类型的客户端创建一个细粒度的API
它还可以转换协议请求并做出响应
它也可以承担微服务的身份验证/授权的责任。
聚合器模式(AggregatorPattern)
将业务功能分解成几个较小的逻辑代码段后就有必要考虑如何协同每个服务返回的数据。不能把这个职责留给消费者。
聚合器模式有助于解决这个问题。它讨论了如何聚合来自不同服务的数据,然后将终响应发送给消费者。这里有两种实现方式:
一个组合微服务将调用所有必需的微服务,合并数据,然后在发送回数据之前对其进行转换合成
一个API网关还可以将请求划分成多个微服务,然后在将数据发送给使用者之前汇总数据
如果要应用一些业务逻辑的话,建议选择一个组合式的微服务。除此之外,API网关作为这个问题的解决方案已经是既定的事实标准。
代理模式
针对API网关,我们只是借助它来对外公开我们的微服务。引入API网关后,我们得以获得一些像安全性和对API进行分类这样的API层面功能。在这个例子里,API网关有三个API模块:
移动端API,它实现了FTGO移动客户端的API
浏览器端API,它实现了在浏览器里运行的JavaScript应用程序的API
公共API,它实现了一些三方开发人员需要的API
网关路由模式
API网关负责路由请求。一个API网关通过将请求路由到相应的服务来实现一些API操作。当API网关接收到请求时,它会查询一个路由映射,该路由映射指定了将请求路由到哪个服务。一个路由映射可以将一个HTTP方法和路径映射到服务的HTTPURL。这种做法和像NGINX这样的Web服务器提供的反向代理功能一样。
链式微服务模式(ChainedMicroservicePattern)
单个服务或者微服务将会有多级依赖,举个例子:Sale的微服务依赖Product微服务和Order微服务。链式微服务设计模式将帮助你提供合并后的请求结果。microservice-1接收到请求后,该请求随后与microservice-2进行通信,还有可能正在和microservice-3通信。所有这些服务都是同步调用。
分支模式
一个微服务可能需要从包括其他微服务在内的多个来源获取数据。分支微服务模式是聚合器和链式设计模式的混合,并允许来自两个或多个微服务的同时请求/响应处理。调用的微服务可以是一个微服务链。分支模式还可用于根据你的业务需求调用不同的微服务链或单个链。
客户端UI组合模式
通过分解业务功能/子域来开发服务时,负责用户体验的服务必须从多个微服务中提取数据。在一个单体世界里,过去只有一个从UI到后端服务的调用,它会检索所有数据然后刷新/提交UI页面。但是,现在不一样了。对于微服务而言,我们必须把UI设计成一个具有屏幕/页面的多个板块/区域的框架。每个板块都将调用一个单独的后端微服务以提取数据。诸如AngularJS和ReactJS之类的框架可以帮助我们轻松地实现这一点。这些屏幕称为单页应用程序(SPA)。每个团队都开发一个客户端UI组件,比如一个AngularJS指令,该组件实现其服务的页面/屏幕区域。UI团队负责通过组合多个特定服务的UI组件来实现构建页面/屏幕的页面框架。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请在707945861群中学习了解。