
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
消息传递机制是程序员在开发软件的时候需要重点掌握的一个编程技术,而今天我们就通过案例分析来了解一下,微服务通信设计模式都有哪些常见类型。
当迁移到基于微服务的应用程序时,大的挑战之一是通信机制的变化。因为微服务是分布式的,微服务之间的通信是通过网络层面的服务间通信完成的。每个微服务都有自己的实例和进程。
因此,服务必须使用服务间通信协议,如HTTP、gRPC或消息代理协议AMQP进行交互。
由于微服务拥有复杂的结构,服务都是独立开发和部署,所以我们在考虑通信类型时应该谨慎,并在设计阶段做妥善处理。
API网关模式
如果你想基于微服务设计和构建具有多个客户端应用程序的复杂的大型应用程序,则建议使用API网关模式。
该模式提供了一个反向代理,将请求重定向或路由到内部微服务端点。API网关为客户端应用程序提供一个单一的端点,它会在内部将请求映射到内部微服务。我们应该在客户端和内部微服务之间使用API网关。
API网关可以处理像授权这样的横切关注点。因此,授权可以在集中式的API网关中处理,并发送给内部微服务,而不是在每个微服务中编写相关代码。同时,API网关控制到内部微服务的路由,并能够将几个微服务的请求汇总到一个响应中。
总之,API网关位于客户端应用程序和内部微服务之间。作为一个反向代理,它将请求从客户端路由到后端服务。它还提供横切关注点,如身份认证、SSL终止和缓存。
API网关设计
我们将对电子商务应用程序的架构进行迭代,增加API网关模式。
它将处理客户端请求,并提供内部微服务路由。它还可以聚合多个内部微服务来响应一个客户端请求,并提供横切关注点,如身份认证和授权、速率限制和节流等等。
架构演进
BackendsforFrontends(BFF)模式
基本上,BackendsforFrontends模式是针对特定的前端应用程序设置单独的API网关。我们有多个供前端应用消费的后端服务,我们在它们之间设置了API网关,用于处理路由和聚合操作。
不过,这产生了单一故障点。为了解决这个问题,BFF提供了多个API网关,并根据客户端应用程序的边界进行分组,然后划分到不同的API网关。
单个复杂的API网关存在风险,并且会成为架构的瓶颈。通常,比较大的系统会按照客户端类型(如移动、Web和桌面功能)暴露多个API网关。当你不想为多个界面定制单一的后端时,BFF模式很有用。
所以我们应该根据用户界面的不同创建多个API网关。这些API网关可以与前端环境实现佳匹配,而不用担心影响其他前端应用程序。
BackendforFrontends模式为实现多网关指明了方向。
BackendsforFrontends(BFF)模式设计
我们将根据BackendsforFrontends(BFF)模式迭代我们的电子商务应用架构,增加API网关。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。