分布式事务 BFF?惊到我了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
4771314
V2EX    程序员

分布式事务 BFF?惊到我了

  4771314 2021-12-09 11:23:19 +08:00 4437 次点击
这是一个创建于 1417 天前的主题,其中的信息可能已经有所发展或是发生改变。

公司有一个前端小组在做一些 BFF 的事情来对接业务,但是系统的划分好像出了点问题,BFF 层需要处理事务 比如:一个数据写入操作,会调用多个后端的服务来实现,BFF 要保证这个写入操作的原子性 我当时就惊呆了,这 TM 是 BFF ,这不是后端吗?

服务的划分我不懂,但是这个操作需要前端来做,至上在我看来是不对的,后端提供的写入服务就应该保证这些,若是前端来实现的话,其他业务要使用,是不是也要自己保证这个写入操作的原子性?

这里有没有大佬可以解惑下

13 条回复    2021-12-10 17:30:33 +08:00
zoharSoul
    1
zoharSoul  
   2021-12-09 11:27:50 +08:00
你想着你不是前端, 是全栈不就好了
libook
    2
libook  
   2021-12-09 11:37:56 +08:00   1
BFF 通常只对数据进行聚合和初加工,分布式事务确实也没见过在 BFF 里做的。

前端组长有责任出面跟后端小组商定架构划分规则,什么功能应该由前端来做,什么功能应该后端来做;前后端耦合严重的话,会极大提高维护成本。
Rwing
    3
Rwing  
   2021-12-09 12:41:32 +08:00
讲道理,BFF 肯定不应该有事务
FantaMole
    4
FantaMole  
   2021-12-09 13:47:38 +08:00
分布式事务由后端来进行保证,BFF 负责数据的筛选裁剪和聚合。这个划分应该是适用于绝大多数情况。而且,BFF 这个服务,也应该由后端来写才是,毕竟名字是 for frontend 的 backend 。不过我倒是觉得有点厉害,你们公司前端都能整起后端业务了,BFF 层是用 Node.js 写的吗
wolfie
    5
wolfie  
   2021-12-09 14:01:38 +08:00
零几年的老项目见过一次,一个人写的前后端图省事。
去年一个菜鸡同事写过一次,自动生成一个 CRUD 以后,告诉前端 你先调用 A 再调用 B ....。

不是《能不能》在前端做的问题。
RandomJoke
    6
RandomJoke  
   2021-12-09 15:32:20 +08:00
保证原子和事务是两回事情。。
pengtdyd
    7
pengtdyd  
   2021-12-09 15:35:02 +08:00
很正常啊!垃圾的架构师必然就会有垃圾的项目。
JudyHal
    8
JudyHal  
   2021-12-09 15:43:49 +08:00
没办法现在靠谱的后端太少了,很多事情只能前端来做
hongweiliuruige
    9
hongweiliuruige  
   2021-12-09 16:27:33 +08:00
如果写操作要调用好几个,,那还真得分布式事务,如果只调用一个那就后台实现了
blessyou
    10
blessyou  
   2021-12-09 17:44:30 +08:00
@wolfie #5 接手的一个项目里就有这个操作 我读了半天前后端代码 把操作逻辑合并到数据库里了
defage
    11
defage  
   2021-12-09 17:55:39 +08:00
软件工程界没有什么问题是不能通过抽出一层来解决的,如果不行就再抽出一层。
所以你可以再加一个层级 BFF-backend ,瞬间解决,快去搞 =。=
EscYezi
    12
EscYezi  
   2021-12-09 18:04:52 +08:00 via iPhone
这是搞了个 nodejs 的中间层吗?
4771314
    13
4771314  
OP
   2021-12-10 17:30:33 +08:00
就是使用 Node 做了一个 BFF
已经分工好了,事务的处理后端处理,BFF 不用关心这个
虽然不是我做的,但是一开始我还是很惊讶的,BFF 需要做分布式事务
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1329 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 27ms UTC 16:48 PVG 00:48 LAX 09:48 JFK 12:48
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86