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

小白请教一下解决方案,公司内部多个独立的系统, http 接口的调用如何保证数据一致性

  •  1
     
  •   dengji85 · 2021-05-13 10:32:21 +08:00 · 2501 次点击
    这是一个创建于 1050 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 背景:没有顶层设计、独立开发的内部系统:项目管理系统、erp 系统、人资系统... 已经经过 4 、5 波的人了*
    • 跨系统的一些功能如:在 erp 请假,项目管理系统自动生成日志; 项目管理系统写了加班日志自动往 erp 生成加班申请 *

    这些功能都是直接调用 http 接口实现的,没有分布式事务框架,如何轻量的提高数据一致性

    12 条回复    2021-05-14 08:29:54 +08:00
    ChovyChu
        1
    ChovyChu  
       2021-05-13 10:44:18 +08:00
    rabbitMq,另外“项目管理系统写了加班日志自动往 erp 生成加班申请”这个流程有点诡异,不是应该先申请再写日志的吗
    dengji85
        2
    dengji85  
    OP
       2021-05-13 11:02:06 +08:00
    @ChovyChu 我没有仔细描述,是基本日志审核后自动生成加班申请,所有日志需上级审核,所以加班申请不需要审核
    micean
        3
    micean  
       2021-05-13 11:34:06 +08:00 via Android
    直接在数据库里跑一些简单的触发器
    xkeyideal
        4
    xkeyideal  
       2021-05-13 11:34:12 +08:00   ❤️ 4
    伪需求,OA+ERP 系统能有多大的 qps,不可能存在性能不够的问题,除非代码 bug,这类系统几乎不存在 api 失败的情况,另即使人工干预成本也就那样吧。这明显是一艘小破船就可以了,非要造一艘航母。
    turan12
        5
    turan12  
       2021-05-13 13:05:33 +08:00 via iPhone
    Python 写个脚本直接轮询
    xuanbg
        6
    xuanbg  
       2021-05-13 13:26:17 +08:00
    憋折腾了,数据一致性是一个非常复杂的问题,不可能存在简单的、轻量级的解决方案。所以我不会去试图解决这个问题,而是针对临时性的系统故障,利用延时队列做一个简单的重试。重试成功自然万事大吉,失败了呢?失败了就人工干预好了。。。系统跑了 3 年多了,还没干预过呢
    dengji85
        7
    dengji85  
    OP
       2021-05-13 14:01:05 +08:00
    @xkeyideal 现状是在一艘破轮船上,有统一的登陆服务、网关、权限 部署也是在公司自己的云上,基础服务和应用跨了多个部门 这些基础应用加数据库 容器快十个了 大大加了故障率
    dengji85
        8
    dengji85  
    OP
       2021-05-13 14:08:36 +08:00
    @xuanbg 这倒是个思路 完善一下重试
    clf
        9
    clf  
       2021-05-13 16:19:32 +08:00
    之前公司都是 OA 直接往数据库里写数据的。反过来,其它系统往 OA 数据库里写数据也是一样。(就离谱)
    xkeyideal
        10
    xkeyideal  
       2021-05-13 17:29:50 +08:00
    @dengji85 那正确做法不应该是弃船,然后重新造一条船么
    ljzxloaf
        11
    ljzxloaf  
       2021-05-13 23:07:20 +08:00
    消息驱动,rocketmq
    liuliancao
        12
    liuliancao  
       2021-05-14 08:29:54 +08:00
    工单-流程平台-HTTP 或者集成消息软件-HTTP
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1000 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 19:53 · PVG 03:53 · LAX 12:53 · JFK 15:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.