又有好一阵子没有更新文章了,今天聊聊系统设计的几点思考。对于咱们来讲,始终会独自设计,研发,迭代系统。为系统的演进,整个生命周期负责。而负责的系统到底处于什么状态?是否健康?是否出现问题?这些都是须要考虑的问题。程序员
对关键流程,进行开关设置。例如:交易开关,资金池开关。对于金融系统而言,特别是出金端,要作好严格的把控。其目的主要是:兜底,及时止损。例如系统出现漏洞,安全事件时,可以及时将其关闭,中止交易。安全
对于 TO B 应用而言,则能够定制化开关。如关闭某个企业的出金,交易等。避免系统雪崩,其目的是将系统的影响降到最低。总之能够根据系统的特征,识别系统的关键点,对其进行开关的设置。微信
业务监控 (在必定时间內,业务处理数是否达标。) 低于阀值时进行业务报警。大数据
数据监控,对主流程的关键数据进行监控。例如:每日的交易数,交易额,成功笔数,失败笔数,以及进行 Top 10 的失败缘由进行分析。优化
报警方式:spa
微信报警线程
邮件报警设计
短信报警3d
对于系统中的关键数据,进行可视化展现,并与上一周期进行比较。从而能够经过数据的差别发现问题,从而及时解决问题。例如: 每日的交易数,交易额,成功率,失败率,与前一日进行比较,前三日,前一周等等进行比较。生命周期
经过图表的形式,展现每日的注册数,活跃数 等关键数据,并与同期数据进行比较。
数据可视化的做用:
运营效果的体现
将同期数据进行比较,及时发现问题。也能够经过数据的增加,体现运营效果,营销效果。例如:投递了广告,作了营销,是否有效果,效果怎么样?就能够经过数据上进行得出。
系统迭代效果的检验
对于系统中主流程的迭代上线,虽然进行了线上验证。但始终没有覆盖到所有场景,生产流量进来后。经过观察数据,查看关键指标是否下降,以及下降的缘由是什么?从而达到上线质量的验证。
在没有引用大数据处理方案时,数据的可视化,则建议在从库中进行。这样能避免下降主库的TPS,由于可能会涉及到多表链接查询,从而致使一些没法优化的慢SQL。
最近发现,有不少的程序员以及公司,在这方面都很缺少。系统上线时,对于参数的配置,调整,都是人肉进行SQL调整。这样耗时耗力,极大的下降了生产效率。而运营系统建设是一种不错的方式。之前我一直认为运营系统是辅助性的,不重要,能够随便写,只要能用就行。通过一段时间的验证,这样的见解有所改观。如今我认为运营系统应该归属于系统建设的一部分,写的好更加可以提升效率。
上面是近期对系统设计上的几点思考。有些是从前辈借鉴过来的,有些则是本身以为有待改进的,沉淀成文章,但愿本身可以从这个方向去。
相关阅读: