design(系统设计+架构)

本文探讨了BFF(Backend for Frontends)和API Gateway在微服务架构中的作用,分析了它们如何帮助减少客户端的HTTP请求,简化微服务间的调用,以及在鉴权流程中的定位。同时,文章还讨论了微服务的特点,包括单一职责、自治性以及其优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章来自,感谢大佬分享!https://zhuanlan.zhihu.com/p/35108457

一、Graphql引发

BFF(Backend for Frontends)
①对于客户端来说,过多的Http请求是昂贵的,为了尽量减少请求的次数,前端会倾向通过一个api把所有关联数据获取。

②每种客户端都会有一个BFF,从微服务的角度来看,微服务之间的相互调用更少了。

③Gateway与BFF: BFF是API Gateway的一种实现方式。 

       API Gateway的三种实现方式:

  1.  一个API Gateway  对所有 客户端提供同一种api
  2. 一个API Gateway 对每种客户端提供分别的api
  3. 多个API Gateway 对每种客户端提供分别的api

   API Gateway api网关  的意义,在微服务架构中,一个页面需要获取多种数据,每个微服务基于普适性的要求,提供了大量细粒度的接口,大量的前后端交互,导致页面响应缓慢随着业务发展,后端服务发生变更或拆分,所有类型的客户端都要适配更改。此时API Gateway的作用就显露出来了。

 

关于系统中的鉴权问题

用户登录后,App 直接访问 KeyCloak 服务获取到 id_token,然后通过 id_token 透传访问 auth-api 服务获取到 access_token, access_token 以 JWT (Json Web Token) 的形式放置到后续 http 请求的头信息中。

在我们这个系统中 BFF 层并不做鉴权服务,所有的鉴权过程全部由各自的微服务模块负责。BFF 只提供中转的功能。BFF 是否需要集成鉴权认证,主要看各系统自己的设计,并不是一个标准的实践。

二、微服务的特点

感谢分享,获益匪浅 https://zhuanlan.zhihu.com/p/31613331

1、单一职责 
     内聚的,常根据业务逻辑划分,根据亚马逊的 Two Pizza Team 负责设计、开发、运维和测试

2、自治

     独立部署、升级,

优点:①逻辑清晰 ②简化部署 ③可扩展 ④灵活组合 ⑤技术异构 ⑥高可靠

缺点:①复杂度高 ②运维复杂 ③

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值