V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
clbigdata
V2EX  ›  Java

[设计问题] 关于电商结算系统的

  •  
  •   clbigdata · 100 天前 · 1477 次点击
    这是一个创建于 100 天前的主题,其中的信息可能已经有所发展或是发生改变。
    前几天面试,我把公司目前的电商结算流程说了下,因为目前我这接手的项目当中,在整个结算流程里边,扣减资产的过程中,例如减积分,优惠券核销等等流程,都是通过结算模板进行编排的,整个的技术底层是结合了流程引擎通过前后状态控制是否进行下一个节点的进行,或者会滚的,全部流程中只是对结算流程进行了存储,在后台的话其实就是一个大 json ,里边包含了当前带执行节点,以及出错要回滚的方法等。 面试官说我这个不行,不知道有没有啥更好的设计,他说这个计算流程要生成一个结算 id 落库存储。
    7 条回复    2024-08-28 15:54:39 +08:00
    chutianyao
        1
    chutianyao  
       100 天前
    "结算 id 落库存储"是把整个 json 落库吗, 估计是为了异常情况补偿、业财对帐等场景使用吧, 实际业务意义不大.
    我们目前也是节点串行执行,哪一个节点失败,就从该节点开始进行回滚
    clbigdata
        2
    clbigdata  
    OP
       100 天前
    @chutianyao 那个面试官说的意思是第一次结算失败了,把这个结算流程存一下,第二次又失败了,再存一下,我感觉这样不合理
    chutianyao
        3
    chutianyao  
       100 天前
    @clbigdata 当然不合理
    失败就失败了,赶紧查问题解决,存下来有啥用. 他存下来难道想自动重试不成
    sentinelK
        4
    sentinelK  
       100 天前
    “不知道有没有啥更好的设计”
    这要看你的需求而定,空谈没有意义。

    你非要掰扯商飞 C919 和洛克希德马丁 F22 哪个设计好,这不是抬杠么。
    你说 F22 载人少,他说 C919 挂载导弹少。
    onll42y
        5
    onll42y  
       100 天前
    “生成结算 id 落库”是为了做幂等吧?防止一个订单多次提交
    kw8023cn
        6
    kw8023cn  
       89 天前
    如果只有“这个方案不行”这么一句话,这个面试官就是扯淡,丢他老母就行了,下一家
    tomatocici2333
        7
    tomatocici2333  
       80 天前
    = =没有业务场景就说不行,面试官有点拉
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1045 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 19:43 · PVG 03:43 · LAX 11:43 · JFK 14:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.