ERP重构-SLA子分类账-分布式实现方案

这篇具有很好参考价值的文章主要介绍了ERP重构-SLA子分类账-分布式实现方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

ERP中的GL总账模块,明细数据来源于各个业务模块如库存、成本、应收、应付、费控、资产等,统称为子模块,生成的账叫做子分类账。然而记账的业务逻辑各式各样,但是最终输出都是来源、类型、期间、科目、借贷金额等等关键信息。期望有一个统一的子分类账配置中心和执行引擎,特别是现在业务模块很多,海量数据,各系统都是分布式存储。比如费控模块每个月才万行、应付模块每个月百万行级别、库存模块每个月10亿行级别。

目标

提供统一的配置中心。
提供统一的SDK计算引擎。
提供类SAAS服务:提供配置查询、服务端计算、类公有云存储。适用于每月小于万行级别的业务模块。
提供类FAAS远程服务:提供配置查询、服务端计算,参数传入,结果返回给调用方在本地存储。适用于每月万行级别的业务模块,
提供类FAAS本地服务:提供配置查询、SDK本地计算,参数本地查询,结果在本地存储,类私有云。减少RPC调用,本地分库分表存储。适用于每月亿行级别的业务模块。

商业软件对比

以Oracle EBS为例,提供一套子分类账配置,编译时动态生成程序包,语言是plsql,只能在单实例的数据库中运行,虽然存储XLA支持分区(即各个业务模块落在不同分区),但是压力都在单实例的数据库中和单实例的应用服务器中。缺点是不支持分布式计算和存储。
也有其它软件的做法是提供配置admin,编译生成程序包,最终部署到不同的服务器,程序计算过程中不依赖配置中心。缺点是有业务规则调整,只能修改配置重新生成程序包并部署。

设计

数据模型设计

配置中心表

对标大型Oracle EBS和SAP,术语有很多相同之处。重配置、轻使用,一套复杂的配置表可以兼容各种业务场景,把复杂都内聚在引擎里,在业务系系统使用计算引擎却很简单。共28张配置表,4张计算输出表,下图只显示部分核心表。
ERP重构-SLA子分类账-分布式实现方案,分布式,分库分表,子分类账,重构,分布式

会计分录业务表

真正的业务表只有事件、分录头、分录行 3张表,事务实体和追溯表的字段已经融合到3张表中,使用更加简单。业务表作为一份标准安装脚本(表名前缀可以改),需要本地存储的业务模块建表即可。
ERP重构-SLA子分类账-分布式实现方案,分布式,分库分表,子分类账,重构,分布式

流程图

把计算引擎做成SDK,保证服务端或本地计算的逻辑一致,采用抽象模板模式,一份计算逻辑模板代码,声明统一的抽象方法。
ERP重构-SLA子分类账-分布式实现方案,分布式,分库分表,子分类账,重构,分布式

SDK模板方法

把计算引擎复杂的逻辑内聚在模板方法中,计算过程中读取分类账配置中心,并且通过各配置表的组件功能协作完成整个计算逻辑,整个过程只需要调用一次配置中心(在业务数据很大时,也可以按需缓存配置)。
ERP重构-SLA子分类账-分布式实现方案,分布式,分库分表,子分类账,重构,分布式

本地模式的实现

声明业务系统需要实现的DB查询和保存抽象方法。在计算开始时参数需要查表,计算结束时结果需要保存。

ERP重构-SLA子分类账-分布式实现方案,分布式,分库分表,子分类账,重构,分布式

预留本地自定义来源

SDK预留本地自定义来源,可以是http、rpc、本地实现各种方式。自定义来源作为一个动态参数,可以使用已有的标准入参,经过自定义逻辑转换得到一个新的自定义参数。ERP重构-SLA子分类账-分布式实现方案,分布式,分库分表,子分类账,重构,分布式

项目实践

对标Oracle EBS SLA
ERP重构-SLA子分类账-分布式实现方案,分布式,分库分表,子分类账,重构,分布式
自研SLA
ERP重构-SLA子分类账-分布式实现方案,分布式,分库分表,子分类账,重构,分布式
已经顺利接入6个不同的业务模块。
对于数据量10亿级以上的业务模块,可以结合MQ分发订阅模式提高处理性能,缓存配置,批量查询或调用.。

作者:黎法良文章来源地址https://www.toymoban.com/news/detail-524614.html

到了这里,关于ERP重构-SLA子分类账-分布式实现方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 分布式系统第四讲:分布式锁及实现方案

    本文主要介绍分布式锁的概念和分布式锁的设计原则,以及常见的分布式锁的实现方式。

    2024年02月12日
    浏览(90)
  • 为什么会有分布式锁?分布式锁实现方案

    分布式锁是控制分布式系统之间同步访问共享资源的一种方式。分布式环境下会出现资源竞争的地方都需要分布式锁的协调。 分布式锁的作用:在整个系统提供一个全局、唯一的锁,在分布式系统中每个系统在进行相关操作的时候需要获取到该锁,才能执行相应操作。 服务

    2024年02月08日
    浏览(50)
  • 分布式限流方案及实现

    优质博文:IT-BLOG-CN 限流是对高并发访问进行限制,限速的过程。通过限流来限制资源,可以提高系统的稳定性和可靠性,控制系统的负载,削峰填谷,保证服务质量。 服务限流后的常见处理方式: 【1】拒绝服务; 【2】排队或等待; 【3】服务降级(当服务器压力剧增的情

    2024年02月14日
    浏览(35)
  • 解读分布式锁(redis实现方案)

    分布式锁是一种用于分布式系统中的并发控制机制,它用于确保在多个节点或多个进程之间的并发操作中,某些关键资源或代码块只能被一个节点或进程同时访问。分布式锁的目的是避免多个节点同时修改共享资源而导致的数据不一致或冲突的问题。通俗的来说,分布式锁的

    2024年02月15日
    浏览(41)
  • 伯俊ERP与金蝶云星空对接集成表头表体组合查询连通分布式调出单新增(调拨出库对接分布式调出(KD调拨)6月)

    伯俊科技,依托在企业信息化建设方面的领先技术与实践积累,致力于帮助企业实现全渠道一盘货。伯俊提供数字经营的咨询与系统实施,助力企业信息化升级、加速数字化转型,覆盖零售市场中时尚鞋服、母婴内衣、珠宝饰品、食品酒水等多个行业,为5000+家机构及企业提

    2024年02月09日
    浏览(37)
  • 【Java】三种方案实现 Redis 分布式锁

    setnx、Redisson、RedLock 都可以实现分布式锁,从易到难得排序为:setnx Redisson RedLock。一般情况下,直接使用 Redisson 就可以啦,有很多逻辑框架的作者都已经考虑到了。 1.1、简单实现 下面的锁实现可以用在测试或者简单场景,但是它存在以下问题,使其不适合用在正式环境。

    2024年02月05日
    浏览(50)
  • Redis分布式可重入锁实现方案

    在单进程环境下,要保证一个代码块的同步执行,直接用 synchronized 或 ReetrantLock 即可。在分布式环境下,要保证多个节点的线程对代码块的同步访问,就必须要用到分布式锁方案。 分布式锁实现方案有很多,有基于关系型数据库行锁实现的;有基于ZooKeeper临时顺序节

    2024年02月19日
    浏览(43)
  • (文章复现)考虑网络动态重构的分布式电源选址定容优化方法

    [1]朱俊澎,顾伟,张韩旦,等.考虑网络动态重构的分布式电源选址定容优化方法[J].电力系统自动化,2018,42(05):111-119.         以投资周期经济收益最高为目标,基于二阶锥规划提出了一种考虑网络动态重构的分布式电源选址定容优化方法。首先,针对闭环设计的配电网结构,提

    2024年04月13日
    浏览(37)
  • 金蝶云星空与领星ERP对接集成分布式调入单查询打通添加/编辑本地产品

    金蝶K/3Cloud结合当今先进管理理论和数十万家国内客户最佳应用实践,面向事业部制、多地点、多工厂等运营协同与管控型企业及集团公司,提供一个通用的ERP服务平台。K/3Cloud支持的协同应用包括但不限于:集中/分散销售、集中/分散采购、B2B电商管理、B2C电商中心、供应商

    2024年04月22日
    浏览(38)
  • 聊聊Seata分布式解决方案AT模式的实现原理

    Seata是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。为用户提供了AT、TCC、SAGA和XA事务模式,为用户打造一站式的分布式解决方案。 AT模式目前来看是Seata框架独有的一种模式,其它的分布式框架上并没有此种模式的实现。其是由二阶段提

    2024年02月05日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包