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