Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >构建可靠、可扩展与可维护的应用系统

构建可靠、可扩展与可维护的应用系统

原创
作者头像
house.zhang
发布于 2021-10-28 14:04:36
发布于 2021-10-28 14:04:36
8150
举报

当前的应用系统,通常数据量比较大、数据复杂度比较高以及数据快速多变,可以把这样的系统称之为数据密集型系统,数据密集型系统通常基于不同的模块组件进行构建,根据不同的功能采用不同的组件,各个组件相互配合组合成一个功能强大、满足不同需求场景的应用系统,比如一个互联网系统通常由类似以下结构组成:

数据库:主要产品是mysql,用于存储和持久化数据,一遍数据能够多次访问。

  • 高速缓存:主要产品有Redis、Memcached缓存那些经常要访问以及复杂计算和操作的数据,用来加快数据的返回,减少数据库压力,扩大系统并发能力。
  • 索引:主要产品有ElasticSearch、Solar,用来支持搜索功能,支持用户用关键字搜素和过滤数据。

除此之外还会涉及到其它模块

  • 流式处理:数据持续产生,需要快速消费数据进行数据计算。
  • 批处理:定期计算处理大量历史数据

随着功能需求越来越复杂,系统需求越来越广泛,单个组件无法满足所有的数据处理和存储的需求,所以需要根据需求将任务分解,组合合适的技术组件去高效的完成某一部分功能,多个组件通过应用层的代码有机的组合起来,对我们的技术要求也比较高,也带来更高的技术挑战。更加复杂的情况是在使用过程中随着用户量以及业务越来越复杂,一定会碰到更多棘手的问题。

比如,当系统出现局部失效时,如何确保数据的正确性与完整性?当系统降级时候,该如何设计为用户提供一致的用户体验?当系统负载增加时,系统如何扩展?这些问题是一个互联网分布式系统需要去重点考虑。

数据密集型应用系统专注于大多数软件系统都极为重要的三个问题:

  • 可靠性

当出现意外情况如硬件、软件故障、人为失误等,系统应可以正常运转,性能可能有所降低,但功能还是正确的。硬件故障,通常的做法是添加硬件冗余来减少系统故障率,随着数据量和应用计算需求的增加,更多应用可以运行在大规模机器之上,随之而来的硬件故障率呈线性增长。因此通过软件容错的方式来容忍多机失效成为新的手段,或者至少成为硬件容错的有力补充。软件问题,故障更加难以预料,因为节点之间是由软件关联的,因而往往会导致更多的系统故障。

  • 可扩展性

随着数据量、流量或复杂性等规模的增长,系统应该能够以合理的方式来匹配这种增长。

  • 可维护性

随着时间的推移,新功能的开发、新的团队成员加入都能够快速参与到系统开发和运维当中。主要关注软件系统的三个设计原则:可运维性、简单性、可演化性。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
SAS-编程中的小技巧(十二)
懒惰的小编好像开启了一月一更的模式了,许久未写编程中的小技巧了,于是今天小编打算分享几个编程中的小技巧。
Setup
2019/10/31
1.9K0
SAS-编程中的小技巧(十)
果然是不动脑筋久了就会变蠢,最近小编写程序感觉变蠢了许多。思来想去究其原因发现是公众号许久未更了。为了不让愚蠢延续下去,今天小编打算分享一些SAS编程相关的小技巧。
Setup
2019/10/20
1K0
SAS-函数(一),总把新桃换旧符~
做为一个曾经写了30+临床项目的数据清洗的SAS程序的小编打算本文将围绕数据清洗中的SAS函数应用展开。当然文中涉及的到例子SAS实现的方法很多可能并非是最佳方式,只是为了引出函数的使用方式…
Setup
2019/10/20
4.5K0
SAS-编程中的小技巧
今天分享的是SAS软件使用过程的中的几个小技巧,掌握了一些小技巧,编程的效率会提高的更快,还能减少敲代码出错率,好处很多,小编就不一一赘述了。 ----Setup~ 1 快捷键(功能键的使用) 今小编这里说的快捷键,并不是通俗意义上的那种CTRl+A、CTRL+C的这种快捷键,而是SAS编程里面的宏功能键(我称“快捷键”)。改键的使用,可实现设置代码块,以后只敲击代码块的缩写,自动就弹出代码。 01 看效果 1.以输入CSV为例 2.输入回车
企鹅号小编
2018/02/05
1.7K0
SAS-编程中的小技巧
SAS-编程中的小技巧(二)
嗯,这是一篇SAS编程的中的小技巧,不知是否记得小编之前写过一篇SAS-编程中的小技巧(可点击跳转),嗯,这又是一些编程中相关的小技巧。接下来小编将一一介绍这几个小技巧。
Setup
2019/10/21
1.1K0
SAS-编程中的小技巧(二)
SAS-关于日期处理的那些事...
在编程过程中,日期、时间的处理是很常见的,SAS中也有很多日期处理相关的语法或函数,那么今天就与小编一起来看看,针对日期、时间的哪些编程的语句....
Setup
2019/10/21
3.7K0
SAS-编程中的小技巧(九)
新年的第一篇推文,一直打算写一点什么,小编辗转反侧、思来想去,发现编程中的小技巧已经写了八篇,如果在写一篇,那便是第九篇,与2019年的9有遥相呼应之势!好像做为新年的第一篇是一件很吉祥的事情。于是,在着实没什么内容想写的情况之下,今天小编打算分享一点编程中的小技巧。
Setup
2019/10/20
9060
SAS-编程中的小技巧(八)
很久没写公众号了...也积累很多想要分享的小技巧,奈何一直苦于工作繁忙,诸事繁多无暇分身...在即将要忘掉所有想分享的小技巧的前一秒想起了公众号还没写呢...最近一直在写报告,用SAS输出RTF,所有啊,今天打算分享的也是RTF输出相关的小技巧...
Setup
2019/10/20
1.6K0
SAS-给公众号做一个秩和检验
嗯,于是小编从公众号上下载了自2017年11月11日-2018年03月25日的公众号每日增粉相关的数据...接着小编就开始分组了,以500人为区间,分成3个组进行对照研究(group1:<=1000;group2:1000-1500;group3:1501-2000);小编这里想到了临床试验中比较常见的对连续变量进行的描述性统计分析的一个例子,因此,我就套用过来对我公众号每日增粉数量进行分析,并按照临床试验中出三线表的形式,将分析结果进行输出!结果如下:
Setup
2019/10/21
1.5K0
SAS-给公众号做一个秩和检验
CSDN 编程竞赛·第五期总结
CSDN 编程竞赛·第五期总结 1.寻因找祖 2.通货膨胀-x国货币 3.莫名其妙的键盘 4.三而竭 CSDN 编程竞赛·第五期为笔者参加的第一次 CSDN 编程竞赛,由于报名人数不多,笔者还是有幸凭借自己的三脚猫功夫,拿到了不错的名次,特此写博客一篇,进行总结。 本次编程竞赛一共4题,笔者只完美通过2题,现对比赛的4道题目进行总结。 1.寻因找祖 题目描述: 寻找因子个数为n的最小整数x。 题干十分简略,像笔者这种萌新只能想到暴力法,通过率只有50%。 赛后了解了其他思路:
小嗷犬
2022/11/15
3450
CSDN 编程竞赛·第五期总结
SAS-编程中的小技巧(三)
这又是一篇SAS编程中的小技巧,这次要说的是SAS中数据字典与Macro结合起来的使用技巧,以及数据集删除、保存等技巧....
Setup
2019/10/20
2.4K0
SAS-编程中的小技巧(七)
虽然难以启齿,但是花费巨额的代价买的教训,还是想分享给大家。“驾驶有风险,开车需谨慎”
Setup
2019/10/20
9300
SAS-利用SAS制作CRF注释
在临床编程中,经常会遇到制作注释CRF的场景。今天小编来分享一下,如何利用SAS实现注释CRF的制作。
Setup
2022/03/14
3.5K3
SAS-利用SAS制作CRF注释
SAS-新规试行下诞生的程序
昨日,《药物临床试验数据递交指导原则》(试行)版正式公布了,在小编阅读后,于是本文因时而生了。
Setup
2020/07/24
2.2K0
SAS-新规试行下诞生的程序
SAS-走近Log,实现程序的“风险控制”
从第一天学习SAS开始,就摆脱不了看SAS日志,每次运行完程序的第一件事,不是看程序运行的结果,而是点击一下Log页面,第二件事也不是去看结果,而是仔细的浏览Log里面,有没有红色的字体出现(ERROR),有没有绿色的字体出现(WARNING),接着在看有没有黑色的_ERROR_=1出现(出现这种情况,一般是你的数据不满足条件或者语法有问题,下面会有例子),接着还得再看看有没有蓝色的字体(XXX未初始化)出现。就目前小编主要看的也就这四种常见的问题。肯定是不全的,各位大神如有兴趣可以留言补充~
Setup
2019/10/21
3.5K0
SAS-你写的第一个程序是什么?[送给第一次使用的朋友]
我感觉这是一个有趣的话题,可能每个人在SAS里面写的第一个程序已经不记得了~不过很多人都见过(学过C/Python/Java/C++/C#....等任何一门编程的人):“Hello World!”,
Setup
2019/10/21
1.2K0
SAS-你写的第一个程序是什么?[送给第一次使用的朋友]
SAS-临床试验程序绘图合集(一)
年前,小编打算写一套SAS绘图的宏程序,于是在朋友圈发了个“调查问卷”,询问了大家临床编程中常遇见的图形。经过漫长的积累与等待(究其原因还是太懒了),本文孕育与诞生了,小编将在本文及后续推文中汇总并分享一些常见的SAS绘图程序及技巧。
Setup
2020/05/22
6.1K0
【SAS Says】基础篇:2. 读取数据
转载请在文章开头注明微信号:shushuojun,谢谢! 本节数据中,我们将介绍SAS读取数据的三种方式: list input、column input、informats 它们各适用于什么情景,如何综合利用这三种方式读取数据?如何读取凌乱的数据? 以及一些小技巧,比如如何让SAS只读取第3到第5行的数据,读取EXCEL时,如何指定读取某个sheet等等 目录: 2.1 将你的数据放入SAS 2.2 用Viewtable窗口输入数据 2.3 用导入向导(Import Wizard)读取文件 2.4 告诉
数说君
2018/04/04
5.7K0
【SAS Says】基础篇:2. 读取数据
30个Python程序员需要知道的编程技巧,可以让你的工作事半功倍!
在上面代码中,赋值的右侧形成了一个新元组,而左侧则立刻将该(未被引用的)元组解包到名称<a>和<b>。
QQ1622479435
2018/10/01
8480
【云+社区年度征文】KMP —— 字符串分析算法
大家可能觉得 KMP 这个算法的名字很特别、很怪,因为 KMP 它并不是三个英文单词的开头,而是三个计算机科学家的名字。发明这个算法的三位计算机科学家分别为:Knuth、Morris、Pratt。第一个是大家都非常熟悉的 Donald Ervin Knuth (高德纳),他是《计算机设计艺术》的作者,也是编程界非常有名的一位老专家。然后 M 和 P 也都是当时比较著名的计算机专家,而 KMP 匹配算法就是他们三个一起研究出来的 。
三钻
2020/11/30
4630
【云+社区年度征文】KMP —— 字符串分析算法
推荐阅读
相关推荐
SAS-编程中的小技巧(十二)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档