BFF 相关学习
一、理解BFF
- BFF的概念: BFF 是 Backends For Frontends 的缩写,中文常翻译为 “为前端服务的后端” 或 “后端服务于前端”。它是一种微服务架构中的模式,核心思想是为不同的用户体验(如Web、移动App、智能手表等)专门定制一个后端层,作为前端与内部复杂微服务集群之间的中间件。
为什么需要BFF?
解耦客户端与后端:避免客户端直接依赖大量微服务接口。
减少客户端复杂度:数据加工逻辑由BFF处理,客户端更轻量。
快速适配多端:针对不同客户端定制API,无需修改核心服务。
二、BFF 项目学习
常用目录结构:
grpc-code-gen.config.js:BFF根据 proto 生成 grpc-code-gen 核心配置项grpc-code-gen:根据 proto 文件生成的 grpc 调用相关文件(运行命令 yarn grpc-gen -b 分支名 自动生成)grpc-service.dev.config.js:开发环境 grpc 服务配置项
- 启动项目:
- 确定 node 、yarn 版本:
- 安装依赖:yarn install
- 从指定的 Git 分支上获取最新的 Proto 定义文件:yarn grpc-gen -b 分支名
- 启动项目:yarn dev 或者 yarn watch:dev
- ps:由于某种特殊原因,无法在本地将 bff 层更改后供前端项目直接使用,所以要先将 bff 层代码提交到测试环境,才可以在本地跑前端项目的时候与自己修改的 bff 层结合
- bff 层工作原理:在Controller中进行校验,处理简单逻辑,并调用Service方法
this.clientService - 当前控制器的客户端服务实例
eventClient- Service层
ps:只有当 yarn grpc-gen拉取后端仓库后才能查看到具体的这个仓库GetRelationEventList - 方法调用
三、查看日志
- 通过请求响应头获取 trace-id
- 切换好对应环境,然后选取要查询的项目名以及对应仓库(注意:常用的仓库后缀名有access、 business、 error),然后将要查询的 traceId 放至下方进行查询即可抓取到对应的日志
- 选择好时间后即可查询与当前 trace-id 相关的一些信息
- 查日志的作用:
- 通过 trace-id 查看该接口在哪些仓库内被直接或者间接的使用
- 贾维斯内的日志包含所有客户端调用的接口信息,当 400群内出现问题时,可以通过报错信息以及报错时间在日志内查看调用的接口并进行错误排查
- 通过 trace-id 查看该接口在哪些仓库内被直接或者间接的使用
