数据密集型应用系统设计-笔记(1)

比特逐星人
• 阅读 528

一个系统设计除了完成应该有的功能,这是功能性需求。但评判一个系统的好与坏,还需要非功能需求来衡量。本书通过可靠性,可扩展性、可维护性来作为目标。

一、可靠性

硬件故障

当硬盘崩溃,内存故障,电网停电等状况发生时,可以通过多机冗余来解决。还可以通过软件容错来容忍多机失效,如滚动升级。

软件错误

因为软件bug导致的系统错误,只能通过加强测试解决。

人为失误

以最小出错的方式来设计系统、分离出最容易出错的地方。
设置详细而清晰的监控子系统

二、可扩展性

可以通过QPS描述负载,通过P99来描述系统性能
无状态服务可以轻易扩展至多台机器,分布式系统。

三、可维护性

通过抽象简化复杂度
可演化

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
皕杰报表(关于日期时间时分秒显示不出来)
在使用皕杰报表设计器时,数据据里面是日期型,但当你web预览时候,发现有日期时间类型的数据时分秒显示不出来,只有年月日能显示出来,时分秒显示为0:00:00。1.可以使用tochar解决,数据集用selecttochar(flowdate,"yyyyMMddHH:mm:ss")fromtablename2.也可以把数据库日期类型date改成timestamp
Stella981 Stella981
3年前
Keepalived 工作原理及简要安装
keepalived介绍     keepalived是Linux下一个轻量级的高可用解决方案     keepalived主要通过虚拟路由冗余(VRRP)来实现高可用功能      优点:部署及使用简单,只需一个配置文件即可完成     功能:1.服务器状态检测和故障
Wesley13 Wesley13
3年前
(绝对有用)iOS获取UUID,并使用keychain存储
UDID被弃用,使用UUID来作为设备的唯一标识。获取到UUID后,如果用NSUserDefaults存储,当程序被卸载后重装时,再获得的UUID和之前就不同了。使用keychain存储可以保证程序卸载重装时,UUID不变。但当刷机或者升级系统后,UUID还是会改变的。但这仍是目前为止最佳的解决办法了,如果有更好的解决办法,欢迎留言。(我整理的解决办法的参
Stella981 Stella981
3年前
DevOps世界中的软件开发
!(https://oscimg.oschina.net/oscnet/f40e68cbfe8148deb00f040b4e917a0a.jpg)在整个软件开发过程中,开发人员通常需要花费大量时间来修复错误和漏洞,以便一切按计划进行交付。但是,通过DevOps实践,可以更轻松地管理和保护这些问题。这是由于以下事实:使用DevOps实践的软
个推技术 | Hadoop3.0时代,怎么能不懂EC纠删码技术
根据云存储服务商Backblaze发布的2021年硬盘“质量报告”,现有存储硬件设备的可靠性无法完全保证,我们需要在软件层面通过一些机制来实现可靠存储。一个分布式软件的常用设计原则就是面向失效的设计。作为当前广泛流行的分布式文件系统,HDFS需要解决的一个重要问题就是数据的可靠性问题。3.0以前版本的Hadoop在HDFS上只能采用多副本冗余的方式做数据备份
【稳定性】关于缩短MTTR的探索 | 京东物流技术团队
一、什么是MTTR?当系统出现系统故障时,我们需要通过一些指标来衡量故障的严重程度和影响范围。其中MTTR(MeanTimeToRepair名为平均修复时间)是一个非常重要的指标,它可以帮助我们了解修复系统所需的平均时间。花费太长时间来修复系统是不可取的,
云容灾关键技术点简介
备份是为防止系统出现操作失误或系统故障导致数据丢失,而将全系统或部分数据集合从应用主机的硬盘或阵列复制到其他存储介质的过程。备份是数据高可用的最后一道防线。容灾是当灾难发生时,在保证生产系统的数据尽量少丢失的情况下,保持生产系统的业务不间断地运行。容灾必须通过系统冗余、灾难检测和系统迁移等技术来实现。