当前位置: 首页 > news >正文

【性能优化】:探索系统瓶颈的根源(一)

背景

本次分享的这个项目是财务系统,众所周知,财务项目的特点是系统复杂业务繁琐,开发一个完整的财务平台,开发周期长,参与人员多,且每月月初需要产出财务报表以供财务人员分析审核。
所以,财务报表产出越早,问题暴露的越早,留给我们处理问题的时间也就越充裕。

本次系统优化,仅针对结账流程,系统内部的代码优化,不在本次讨论范围。

数据流转

下面来分析下数据流转图,以方便我们分析瓶颈根源。
在这里插入图片描述

手工结账

从数据流转图可以看出来,整个流程还是比较复杂的,如果利用手工结账的话则更为麻烦,如:

  1. 业务数据导入(需要登录 airflow 管理台,输入参数,执行对应的 DAG 任务)
  2. 物料成本配置(登录数据库服务器执行 sql)
  3. 财务计算(登录计算引擎服务器,执行 curl 命令)
  4. 财务凭证汇总(postman 发送请求,执行 jupyter 接口)
  5. 财务数据备份(需要登录 airflow 管理台,输入参数,执行对应的 DAG 任务)
  6. 财务报表轧差(需要登录 airflow 管理台,输入参数,执行对应的 DAG 任务)
  7. 财务报表导出(登录 hue,执行 hive sql 查询导出)
  8. 财务数据验证(财务人员线下验证数据)
  9. 对接SAP(登录 sap网关服务,执行 curl 命令)

而且,步骤之间还有依赖关系,只能串行,且步骤之间还有参数依赖等等。

之前负责结账的同事是怎么做的呢?
纯手工一条条执行,而且还需要把本月每个执行的步骤参数记录下来,下个月的时候要用到。

弊端

繁琐

需要登录各个平台环境,复制粘贴参数。

耗时

点击执行按钮或输入 curl 命令后,需要等待它执行完成,除非你一直盯着它,否则它不会在执行完成后自动通知你。

错误率高

因为需要手动记录各个步骤的参数,以便在下个月结账时使用,很容易出错。

监控差

没有一个完善的步骤监听机制,成功或失败时能通知到我们。

总结

从上述描述可以看出来,纯手工执行结账流程,时间都白白的浪费了,若能开发出一套程序自动化执行的机制,则能大大的缩短执行时间。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Modern restaurant - building and interior (餐厅场景)
  • linux命令 sudo and su
  • 【开发笔记】Notepad++配置
  • 【C++】模拟(例题 学习)
  • 什么三维点云(3D Point Cloud)和其他数据的区别
  • 一文读懂大语言模型:基础概念篇
  • Labview获取LK-G3001数据
  • 动态规划篇-代码随想录算法训练营第三十六天l 279.完全平方数,139.单词拆分,多重背包问题
  • c++面向对象编程
  • ClickHouse分布式部署搭建单分片二副本集群
  • 简易的 Websocket + 心跳机制 + 尝试重连
  • 信息打点-Web架构篇域名语言中间件数据库系统源码获取
  • 容器存储接口--CSI
  • HarmonyOS--认证服务-操作步骤
  • MySQL语法常用优化
  • [译]如何构建服务器端web组件,为何要构建?
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • Android Studio:GIT提交项目到远程仓库
  • CSS实用技巧
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • ES学习笔记(12)--Symbol
  • gitlab-ci配置详解(一)
  • Python_网络编程
  • React-flux杂记
  • Redis 懒删除(lazy free)简史
  • 和 || 运算
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 利用DataURL技术在网页上显示图片
  • 驱动程序原理
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • # Panda3d 碰撞检测系统介绍
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #etcd#安装时出错
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (ros//EnvironmentVariables)ros环境变量
  • (不用互三)AI绘画:科技赋能艺术的崭新时代
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (二)c52学习之旅-简单了解单片机
  • (附源码)计算机毕业设计大学生兼职系统
  • (转) 深度模型优化性能 调参
  • (自用)网络编程
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .NET MAUI Sqlite数据库操作(二)异步初始化方法
  • .NET 中 GetProcess 相关方法的性能
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)...
  • /proc/stat文件详解(翻译)
  • @component注解的分类
  • [ Linux Audio 篇 ] 音频开发入门基础知识
  • [10] CUDA程序性能的提升 与 流
  • [Android 13]Input系列--获取触摸窗口
  • [CSAWQual 2019]Web_Unagi ---不会编程的崽