首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏网络日志

    graphql+koa2 前端bff

    使用graphql的优势: 前端把握查询的主动权,可定义你需要查询的字段过滤冗余,另外减少两端的沟通 接手bff前端可作为空间更大,包括做一些鉴权 请求合并更加便利(以前初始化多个请求需要一起返回都是使用 另外后端同学对于bff其实不怎么感冒,因为数据聚合对他们来说没什么含量,完全是对前端同学服务。所以我们完全可以引入查询来接手后端同学的bff。 后端同学直接集成 (java接口(restful或者graphql)-->前端) 前端增加中间服务(java接口-->前端中间服务nodejs(graphql)-->前端) 对于第一种方式,后端同学可能更改会更大 前端中间服务的配置 中间服务使用koa2搭建,当然你也可以使用express等等其他。 graphql的查询中另外一个比较好的地方在于指令,指令的加入会让bff更加有做为(放在下一次讲)

    55010编辑于 2024-05-30
  • 来自专栏Web行业观察

    前端构建BFF创建业务中间后端逻辑架构

    BFF的作用 BFF的主要作用包括: 数据聚合:将来自多个后端服务的数据聚合成前端需要的格式。 协议转换:将后端服务的RESTful API或GraphQL API转换为前端更易用的接口。 选择BFF框架 在搭建BFF时,选择一个合适的框架非常重要。以下是一些常用的BFF框架: Node.js + Express/Koa:适合小型项目或团队,易于上手。 我们以Node.js + Express为例,详细介绍如何搭建BFF。 安装Node.js和npm 在开始之前,确保你的计算机上已经安装了Node.js和npm。 安装完成后,可以通过以下命令检查Node.js和npm的版本: node -v npm -v 创建项目目录 首先,创建一个新的项目目录,并进入该目录: mkdir bff-project cd bff-project 集成认证和授权 为了确保前端请求的安全性,我们可以在BFF集成认证和授权逻辑。

    78910编辑于 2024-12-06
  • 来自专栏黯羽轻扬

    Backend For Frontend (BFF)

    复用问题 拆开之后,多个BFF之间容易产生冗余代码,尤其是一些通用的后端逻辑(如授权、认证、限流等等) 为了消除BFF间的代码冗余,一般采用两种做法: 要么多BFF合一 要么在BFF之上加一Edge 具体实践中,BFF通常不是图示的样子,主要变化在于: 按业务线拆分BFF 加一网关,负责实现路由、认证、监控、限流熔断、安全等功能 按业务线拆分的BFF更像是建立在下游基础服务之上的业务型微服务,只是这些微服务由对应业务的前端团队负责开发维护 广义的,可以理解为更细粒度的BFF,即每块业务对应一个BFF(不再按用户体验差异去分) 网关负责实现通用的边界服务,如认证、限流等,让BFF更专注于业务相关的部分: 前端体验 ------------ -- ----- BFF BFF ----- ----- ^ ^ ^ ^ / \ / \ -------------------- 下游服务 P.S.另外,还有不引入BFF,而只添一转发服务来解决数据的聚合 从分工的角度看: BFF模式不仅仅是一种技术架构,从社会分工角度讲,BFF更是一种多元价值导向的分层架构,每一都有不错的空间去施展。

    2.8K40发布于 2019-06-12
  • 来自专栏黑客下午茶

    一种不错的 BFF Microservice GraphQLREST API 的开发方式

    还添加了基于响应性扩展的示例,以演示如何将其用于构建微服务 API 边缘服务(edge-service)、前端的后端(BFF)或将其用作构建任何类型微服务的基础。 swapi.co/api/people/4/", "http://swapi.co/api/people/6/", "http://swapi.co/api/people/7/ /swapi.co/api/films/3/", "http://swapi.co/api/films/1/", "http://swapi.co/api/films/7/

    3.5K10发布于 2021-05-27
  • 来自专栏JavaEdge

    BFF 架构简介

    Sam Newman详细地说明了BFF。 客户端都不是直接访问服务器的公共接口,而是调用BFF提供的接口,BFF再调用基层的公共服务,不同的客户端拥有不同的BFF,它们定制客户端需要的API。 而使用BFF在很大程度能避免这样的问题。 使用BFF的另一个优点就是当由于某一客户端需要调用调用多个不同的服务端接口来实现某一功能时,可以直接在对应的BFF编写相应的API,而不会影响到基层的公共服务,且客户端不用直接向多个后台发起调用,可以优化性能 当然,凡事有利有弊,BFF带来便利好处的同时也会引起一些问题,如代码重复,加大开发工作量等。所以在使用时需要结合现实情况仔细斟酌,符合项目的应用开发背景。例如蚂蚁财富使用BFF的场景如下。 ?

    1.6K30发布于 2021-02-23
  • 来自专栏随心分享

    BFF与Nestjs实战

    适用场景 BFF虽然比较流行,但不能为了流行而使用,要满足一定的场景并且基建很完善的情况下才使用,否则只会增加项目维护成本和风险,收益却非常小,我认为的适用场景如下: 后端有稳定的领域服务,需要聚合 需求变化频繁,接口经常需要变动:后端有一套稳定的领域服务为多个项目服务,变动的话成本较高,而bff针对单一的项目,在bff变动可以实现最小成本的改动。 总结 经过上文我们可以对BFF的概念有一个基本的了解,并且按照步骤可以自己搭建一个Nestjs小应用,但和企业级应用差距还很大。 接BFF需要有完善的基建和合适的业务场景,不要盲目接入 Nestjs基于Express实现,参考了springboot的设计思想,入门很简单,精通需要理解其原理,尤其是依赖注入的设计思想 参考文献 我理解的 BFF NestJs官方文档

    3.5K10编辑于 2022-11-19
  • 来自专栏负载均衡

    Nginx47配置详解

    192.168.1.103:8080; } server { listen 80; location / { proxy_pass http://backend; } }}3.7 整体测试拓扑3.7.1 Nginx4负载测试 3.7.2 Nginx7http负载测试1、根据拓扑图,将节点中的IP配置好。2、配置Nginx: 配置服务器和监听端口等。 3.7.3 Nginx7https负载测试1、根据拓扑图,将节点中的IP配置好。2、配置Nginx: 配置服务器和监听端口等。

    57000编辑于 2024-07-15
  • 来自专栏ThoughtWorks

    探索原味BFF模式

    BFF — Backend For Frontends,经典分布式架构设计模式之一。我在学习和工作经验累积中,逐渐加深了对 BFF 的理解。 寻找历史的线头 在毫无头绪的情况下,我们可以首先从Thoughtworks技术雷达中 BFF 的条目入手,去找到一些历史的蛛丝马迹。BFF 条目的发布时间是在 2015 年 11 月10 日。 终于,我们可以说 BFF 模式是在解决 SoundCloud的分布式系统问题中首次出现。下面,让我们一起回到BFF第一次发挥威力的现场吧。 BFF 新的形态出现了,具体如下图所示: 随着时间推移,SoundCloud 的 BFF 也在增加。他们已经在生产环境同时维护着 5 个 BFF 了。为了进一步提高生产力,减少不必要的重复。 SoundCloud 的 BFF 依然随着时间在横向增长,不同的是这种横向增长不会再引起任何问题了。最终,BFF 模式的架构演变成与我们现在使用的几乎一致了。

    75020编辑于 2022-09-14
  • 来自专栏Tencent Serverless 官方专栏

    Yunong Xiao : Serverless Is Your BFF

    然而语言只是服务端开发最表层也是最易突破的一,可靠性、速度性能、安全性、架构可扩展性、甚至运维,都是前端向全栈发展需要考虑的关键因素。 10月20日, JSConf大会上,腾讯云中间件总经理 Yunong Xiao 将发表《Serverless Is Your BFF》主题演讲,从前端发展演进、前端到全栈的路径和问题以及如何利用Severless

    98040发布于 2019-10-21
  • 来自专栏用户1392128的专栏

    7负载均衡与4负载均衡区别

    先说结论: 4 负载均衡本质是转发,而 7 负载本质是内容交换和代理 一、OSI 7模型与TCP/IP 4模型 OSI: open system interconnection 开放式系统互联参考模型 OSI 7模型 TCP/IP 4模型 应用 应用 表示 应用 会话 应用 传输 传输 网络 传输 数据链路层 数据链路层 物理 数据链路层 网络七模型是一个标准,而非实现 二、7负载均衡与4负载均衡 在OSI 7模型中,从下往上,应用属于第七,而传输属于第四, 所谓四即运输,就是基于 IP + 端口的负载均衡; 七即应用,就是基于 URL 等应用信息的负载均衡 4 负载均衡本质是转发,而 7 负载本质是内容交换和代理 以常见的 TCP 为例: 4 负载均衡转发 负载均衡设备在接收到第一个来自客户端的 SYN 请求时,即通过上述方式选择一个最佳的服务器 三、7负载均衡与4负载均衡的对比 7负载均衡相较于4负载均衡在更耗费性能的同时,也获得了更加智能的优点,由于在应用进行识别,所以7负载均衡可以基于不同的协议(如http、radius、dns

    1.4K11编辑于 2024-01-08
  • 来自专栏网络安全与可视化

    OSI 7的简单讲解

    它将网络通信分为七。在此模型中,第1-4被认为是下层,主要关注数据的移动。第5-7(称为上层)包含应用程序级别的数据。网络的运行有一个基本原则:“传递”。 每一负责一个非常具体的工作,然后将数据传递到下一。 第1:物理 从OSI模型的最底层开始是物理。物理规定了在载体上发送和接收数据的硬件方法,包括定义电缆,网卡和物理方面。 第3:网络 第3负责在网络中进行网络消息的路由。网络的一个重要功能是逻辑寻址。每个网络设备都有一个物理地址,称为MAC地址(见第2)。 第7:应用 OSI模型的最高层-应用,它处理应用程序用于与网络通信的技术。该的名称是有点令人困惑,因为应用程序(如Excel或Word)实际上不是该的一部分。 ▣第7应用示例包括WWW browsers,NFS,SNMP,Telnet,HTTP,FTP。

    11.1K1411发布于 2020-09-15
  • 来自专栏黑泽君的专栏

    7OSI网络模型概述

    7OSI网络模型 7OSI网络模型概述: 7.应用: 主要是一些终端的应用,比如说FTP(各种文件下载)、WEB(IE浏览)、QQ之类的(可以把它理解成我们在电脑屏幕上可以看到的东西 5.会话: 通过传输(端口号:传输端口与接收端口)建立数据传输的通路。 常常把这一数据叫做段。 3.网络: 主要将从下层接收到的数据进行IP地址(例192.168.0.1)的封装与解封装。 在这一工作的设备是路由器。 常把这一的数据叫做数据包。 常把这一的数据叫做帧。 1.物理: 主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。

    52920发布于 2018-10-11
  • 来自专栏SpringBoot 核心技术

    初识BFF架构设计

    最近在公司的微服务架构中遇到了一些多终端访问接口的问题,不同的终端拥有不同的接口服务,有不同的操作数据的能力,针对这种业务场景做出了调研,我们是否可以在不同的访问进行业务逻辑处理,获取不同的数据内容呢 多端共用一个BFF ? 每个端提供一个BFF ? 如果我们为每一个端点都提供一个BFF,每个端点的BFF处理自身的业务逻辑,需要数据时从基础服务内获取,然后在接口返回之前进行组装数据用于实例化返回对象。 这样基础服务如果有新功能添加,BFF几乎不会受到影响,而我们如果后期把App端点进行拆分成Android、IOS时我们只需要将app-bff进行拆分为android-bff、ios-bff,基础服务同样也不会受到影响 也同样带来了一些问题,如下所示: 响应时间延迟(服务如果是内网之间访问,延迟时间较低) 编写起来较为浪费时间(因为在基础服务上添加的一转发,所以会多写一部分代码) 业务异常处理(统一格式化业务异常的返回内容

    2.3K50发布于 2019-10-09
  • 来自专栏软件系统思考

    7负载均衡到底有啥区别

    背景你是否经常听到别人提到四负载和七负载,却不太明白是什么意思?其实,它们理解起来非常简单。 我们所说的“七”就是指其最高层——应用。TCP/IP四模型:这是互联网实际应用中的事实标准,将网络分为四个层级。我们所说的“四”对应的是传输。 七网络工作原理七网络工作在应用,需要理解数据流所用的应用协议(如 HTTP、HTTPS)。 使用七负载均衡(L7 LB):用户发送请求:GET /api/v1/orders HTTP/1.1 Host: www.example.com …L7 LB 会完整接收并解析这个 HTTP 请求。 根据解析出的信息(如 URL 路径为 /api/v1/orders),L7 LB 可以:内容路由:将所有以 /api/ 开头的请求转发到后端 API 服务器集群,将所有以 /static/ 开头的图片、

    42000编辑于 2025-10-30
  • 来自专栏码农那些事!!!

    聊聊微服务中的 BFF 架构

    此时,整个供应链系统的架构如下图所示: 上图中的网关主要负责路由、认证、监控、限流熔断等工作。 路由:所有的请求都需要通过网关进行处理,网关再根据 URI 将请求指向对应的后台服务,如果同一个服务存在多个服务器节点,网关还将承担负载均衡的工作。 认证:对所有的请求进行集中认证鉴权。 为了解决这 2 个问题,最终我们决定抽象一个 API 。 API 一般来说,客户端的接口需要满足聚合、分布式调用、装饰这三种需求。 从图中我们发现,所有请求经过网关后,全部交由一个共用的 API 进行处理,而该 API 没有自己的数据库,它的主要职责是调用其他后台服务。 通过这样的设计方案后,以上两个问题就得到了很多地解决。 我们就可以考虑使用 BFF 了。 BFF(Backend for Front) BFF 不是一个架构,而是一个设计模式,它的主要职责是为前端设计出优雅的后台服务,即一个 API。

    2.4K20编辑于 2023-05-01
  • 来自专栏前端那些趣事

    你学BFF和Serverless了吗

    ❝ 前沿:前段时间在公司内部分享了关于bff和serverless的知识体会,从概念、特征、和应用场景再到简单的实践,今天借此机会跟大家分享,什么是BFF? 什么是serverless? ❞ 1.BFF ❝ 在聊Serverless之前跟大家先谈谈BFFBFF顾名思义就是Backend For Frontend,用中文解释就是服务于前端的后端,那么为什么会有BFF? ❞ 前端同学和后端同学都各有各的道理,有没有一种解决方案可以化解这种尴尬的场景,于是就有了BFF 1.1 介绍 ❝ BFF初衷是在后台服务与前端(客户端)之间添加一,接下来我们来看看下面这张图 ❞

    90131发布于 2020-10-15
  • 来自专栏ThoughtWorks

    微服务下使用GraphQL构建BFF | 洞见

    加入了BFF 的前后端架构 ? 加入了BFF的前后端架构中,最大的区别就是前端(Mobile, Web) 不再直接访问后端微服务,而是通过 BFF 进行访问。并且每种客户端都会有一个BFF服务。 从微服务的角度来看,有了 BFF 之后,微服务之间的相互调用更少了。这是因为一些UI的逻辑在 BFF 进行了处理。 比如作为在 BFF 使用 GraphQL, 这一BFF 并不需要任何的数据库或者存储媒介。 整体来看,我们的前后端架构图如下,三个 App 客户端分别使用 GraphQL 的形式请求对应的 BFFBFF 再通过 Consul 服务发现和后端通信。 在我们这个系统中 BFF 并不做鉴权服务,所有的鉴权过程全部由各自的微服务模块负责。BFF 只提供中转的功能。BFF 是否需要集成鉴权认证,主要看各系统自己的设计,并不是一个标准的实践。 3.

    2.4K60发布于 2018-04-17
  • 来自专栏全栈程序员必看

    tensorflow _win7怎么扩展屏幕

    比如有3张不同方向的数字7的图像,池化是通过图像上的小网格来检测7,不受7的位置影响,因为通过聚集的像素值,我们得到的信息大致一样。个人觉得,作者的本意是单看小网格,是有很多一样的块。 一个小的接受域,池化操作的影响仅仅是针对更深的网络(越深感受野越大),也就是中间的特征图可能受到严重的输入失真的影响。我们不能任意增加接受域,这样会过度下采样。 b_fc1') 然后利用一维信息得到图像变换所需的6个值: x = tf.matmul(stn_params, self.W_fc1) + self.b_fc1 最后利用STN库将变换应用到图像中,得到下一网络结构的输入

    1K30编辑于 2022-09-27
  • 来自专栏架构精进之路

    关于 BFF 架构设计的胖瘦之争

    在计算机科学中,所有问题都可以通过加一来解决,于是 BFF 架构设计应运而生。 2. 在服务化的系统中规划阶段,有一些必然会被讨论的话题: 要不要 BFF ? 要不要编排? 要不要网关?什么是网关? 应用网关和网关的区别是什么? 后端(领域服务)服务之间要不要互相调用? 要不要使用 BFF 来编排后端服务? BFF 是不是编排BFF 能不能宏观上对应 DDD 的应用? ...... ,统一由 BFF 处理 不同类型的客户端一套 BFF 非常接近 DDD 四架构中的应用,处理面向场景的业务 因为它的职责比较多,我们暂且称其为:胖 BFF。 瘦 BFF 的好处是: 端到端交付,前端开发人员直接使用后端领域服务的 API 文档 开发效率高,避免多编写一 BFF 减少一次集成 对应的,瘦 BFF 的弊端可想而知: 没有编排,服务之间相互依赖

    41120编辑于 2024-12-06
  • 来自专栏云原生研究

    nginx ingress 如何使用 7 负载均衡

    当前 nginx ingress 在云 CLB 接入的时候,使用了 4 的 CLB 侦听,这样本身是合理的。但有些云产品功能却无法在四下工作,如:证书绑定,WAF 等。 本文探讨一个方法,使用七的 CLB 接入 nginx ingress。 通过上述两个资源的应用,就可以实现 七的 CLB 接入了。 其实,nginx ingress 的 class 创建的时候,已经为 nginx 创建了一个 service 了。

    1.8K30发布于 2021-11-15
领券