一个系统设计问题,请各位大佬帮助出出主意。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
xuxonce
V2EX    程序员

一个系统设计问题,请各位大佬帮助出出主意。

  •  
  •   xuxonce 2020-01-09 09:41:13 +08:00 2113 次点击
    这是一个创建于 2111 天前的主题,其中的信息可能已经有所发展或是发生改变。

    近期遇到这样一个需求。

    就是,需要对多个业务系统的多个上下游的节点进行清结算,同时要把多个业务系统上下游节点单独拉出来进行统一管理。

    那这个需求,规划了三个部分: ( 1 )业务系统:包括多个业务项目的流程,业务数据(如订单数据等); ( 2 )上下游管理系统:包括上有供应商,下游分销商的信息,并且这些信息都是有层次的树结构信息。希望可以在这个系统中追溯和查看到上下游个节点,在本公司参与过的所有业务的详情; ( 3 )算账系统:记账,算账,希望算出的帐可以溯源到业务数据。

    如果这样来分的话,那么数据存储要如何处理呢?

    最简单的办法就是,各存各的,用的时候通过接口互相调用。但是系统之间的数据不但需要调用,还需要进行修改,如对业务数据打标签等。这样做耦合有点儿太严重了,相当于把所有的数据都放到一个库里了。

    另一个方法,就是中间一个数据仓,数据 T+1 同步到数据仓,系统之间不直接连接,通过数据仓交互数据。这样设计的话工作量有点儿大,而且 T+1 的延迟,可能对部分业务不太友好,系统之间一些直连可能使不可避免的。

    还想了些其它的方式,但是似乎都有各种的不太合适的地方。只能说自己还是水平太 low 了。

    请问各位见多识广的大佬,像这样的情况,应该怎么处理比较好呢?

    5 条回复    2020-01-09 11:45:42 +08:00
    lhx2008
        1
    lhx2008  
       2020-01-09 09:48:41 +08:00 via Android
    没有接触过这类的业务,瞎想的
    如果是集中存的话,只要存最重要的部分就行,相当于一个网关 /代理,中间拦截一下数据存下来,至于追溯的话再回去掉。然后再跑任务做缓存。

    或者是用信息队列推拉,数据推过来统一处理,有问题再回推消息让业务数据自己处理。不过数据别太多了。
    SbloodyS
        2
    SbloodyS  
       2020-01-09 10:23:18 +08:00
    2、3 点实时数仓都可以解决
    dongeast52123
        3
    dongeast52123  
       2020-01-09 11:03:57 +08:00
    个人推荐用后者,这样你的业务就不会去其他业务系统耦合。在细节一点,可以通过 binlog 抓取数据,抓取到的数据怎么折腾,还不是你自己决定的么。
    betajun
        4
    betajun  
       2020-01-09 11:40:28 +08:00
    1. 上下游系统是不是你有完全的控制权?
    如果你有控制权,都可以
    如果你没有控制权,是别的团队(人)在维护,最好通过调用接口来处理,你可以要求接口不变。

    我觉得能少耦合就少耦合~
    dongisking
        5
    dongisking  
       2020-01-09 11:45:42 +08:00
    我现在用子系统的结算就是“是中间一个数据仓,数据 T+1 同步到数据仓,系统之间不直接连接,通过数据仓交互数据”这个方案
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5489 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 07:20 PVG 15:20 LAX 00:20 JFK 03:20
    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