系统设计的几点思考

首发于我的公众号《andyqian》,期待你的关注!

前言

  又有好一阵子没有更新文章了,今天聊聊系统设计的几点思考。对于咱们来讲,始终会独自设计,研发,迭代系统。为系统的演进,整个生命周期负责。而负责的系统到底处于什么状态?是否健康?是否出现问题?这些都是须要考虑的问题。程序员

开关

  1. 对关键流程,进行开关设置。例如:交易开关,资金池开关。对于金融系统而言,特别是出金端,要作好严格的把控。其目的主要是:兜底,及时止损。例如系统出现漏洞,安全事件时,可以及时将其关闭,中止交易。安全

  2. 对于 TO B 应用而言,则能够定制化开关。如关闭某个企业的出金,交易等。避免系统雪崩,其目的是将系统的影响降到最低。总之能够根据系统的特征,识别系统的关键点,对其进行开关的设置。微信

监控

  1. 业务监控 (在必定时间內,业务处理数是否达标。) 低于阀值时进行业务报警。大数据

  2. 数据监控,对主流程的关键数据进行监控。例如:每日的交易数,交易额,成功笔数,失败笔数,以及进行 Top 10 的失败缘由进行分析。优化

报警方式spa

  • 微信报警线程

  • 邮件报警设计

  • 短信报警3d

运营数据可视化

  1. 对于系统中的关键数据,进行可视化展现,并与上一周期进行比较。从而能够经过数据的差别发现问题,从而及时解决问题。例如: 每日的交易数,交易额,成功率,失败率,与前一日进行比较,前三日,前一周等等进行比较。生命周期

  1. 经过图表的形式,展现每日的注册数,活跃数 等关键数据,并与同期数据进行比较。

数据可视化的做用:

  1. 运营效果的体现

  将同期数据进行比较,及时发现问题。也能够经过数据的增加,体现运营效果,营销效果。例如:投递了广告,作了营销,是否有效果,效果怎么样?就能够经过数据上进行得出。

  1. 系统迭代效果的检验

  对于系统中主流程的迭代上线,虽然进行了线上验证。但始终没有覆盖到所有场景,生产流量进来后。经过观察数据,查看关键指标是否下降,以及下降的缘由是什么?从而达到上线质量的验证。

在没有引用大数据处理方案时,数据的可视化,则建议在从库中进行。这样能避免下降主库的TPS,由于可能会涉及到多表链接查询,从而致使一些没法优化的慢SQL。

运营系统建设

  最近发现,有不少的程序员以及公司,在这方面都很缺少。系统上线时,对于参数的配置,调整,都是人肉进行SQL调整。这样耗时耗力,极大的下降了生产效率。而运营系统建设是一种不错的方式。之前我一直认为运营系统是辅助性的,不重要,能够随便写,只要能用就行。通过一段时间的验证,这样的见解有所改观。如今我认为运营系统应该归属于系统建设的一部分,写的好更加可以提升效率。

最后

  上面是近期对系统设计上的几点思考。有些是从前辈借鉴过来的,有些则是本身以为有待改进的,沉淀成文章,但愿本身可以从这个方向去。


 

相关阅读:

Java线程池ThreadPoolExecutor

使用 Mybatis 真心不要偷懒!

再谈Java 生产神器 BTrace

Java 生产神器  BTrace

相关文章
相关标签/搜索