软件系统的高可用性设计
微原生:
老师讲的好,老师后续能补充一些NewSQL特性吗?YugabyteDB CockroachDB TiDB新星数据库AI视频小助理:
一、应用系统高可用性架构设计,包括高可靠性、高扩展性和高性能三个方面,以及它们之间的关系。同时从数据库、应用中间件和应用架构设计等方面详细阐述了高可用设计。
00:01 - 应用系统高可用性架构设计包括高可靠性、高扩展性和高性能
01:00 - 高可靠性不一定带来高性能,高性能往往会牺牲一定的高可靠性
02:33 - 数据库高可用性发展历程:HA架构、RAC集群
二、数据库集群的发展趋势,包括拆分、读写分离和新的PDB集群等,以及如何通过数据库服务能力应用系统提供高可用和可扩展能力。
03:02 - 数据库集群读写分离,但扩展性能有限
03:42 - 数据库拆分和读写分离集群是高可用高扩展趋势
05:27 - PDB集群折中传统和分布式集群,无感知读写分离模式
三、在应用系统架构设计中,如何实现数据库的高可用性和分布式集群架构,以及应用中间件的高可用性解决方案。
06:02 - 底层数据库集群或高性能的实现方式架构
06:53 - 使用负载均衡设备或软负载均衡实现可扩展性
08:30 - 使用分式集群架构解决基础元数据配置文件同步状态的问题
四、分布式集群架构中常用的 ETCD 和 ROKER 方案,以及在应用中间件和数据库设计中需要考虑的高可用性问题。
09:00 - ETCD和ROOKER是实现分布式集群架构的常见方案
09:18 - APIX等开源应用中间件也基于ETCD实现分布式集群架构
11:19 - 应用架构设计应避免单点故障,高可用性架构需要部署多个节点
五、在进行高可用、高性能设计时需要考虑的多个因素,包括微服务模块划分、代码质量、server语句优化、数据库表数据量等。
12:00 - 软件系统的高可用性设计需要考虑微服务模块的划分和代码编写质量
12:17 - 后台的数据库表积累大量数据时,需要进行持续优化
12:36 - 为了提高关键信息查询性能,可以启用缩略、全文检索和二级缓存等技术,或者考虑更换为分布式架构的存储
--本内容由AI视频小助理生成,关注解锁AI助理,由@想佛了 召唤发送PluckZ:
谢谢分享,今天的声音效果比那个手持麦克风要好想佛了:
感想
“可用性优化”的第一步就是定义“可用性的评价标准”并对“可用性指标”添加监控和报警
【回复】感想
1. 通过监控系统对指标进行监控和报警
2. 指标的大类
1. 业务指标(下单数量、支付数量等)
2. API指标(接口调用频率、接口延迟等)
3. 应用内自定义统计上报指标(某类数据结构或对象的数量及其平均大小)
【回复】感想
1. “可用性优化”的工作难点是“发现异常事件源”
2. 应对“异常事件源”的第一类方法是“消除异常事件源”,适用于该事件源可控可消除的场景(例如修复代码bug,改用更为稳定的基础组件、依赖服务)
3. 应对“异常事件源”的第二类方法是“对异常事件添加容错逻辑”,适用于可通过熔断、降级、重启等策略消除或减少灾难后果的场景