徐州品牌网站建设,成都h5模板建站,长沙网业公司,重庆哪个区最繁华高可用性
系统无中断地执行其功能的能力#xff0c;代表系统的可用性程度#xff0c;是进行系统设计时的准则之一。 高可用的“冗余”解决方案#xff0c;单纯从形式上来看#xff0c;和之前讲的高性能是一样的#xff0c;都是通过增加更多机 器来达到目的#xff0c;但…高可用性
系统无中断地执行其功能的能力代表系统的可用性程度是进行系统设计时的准则之一。 高可用的“冗余”解决方案单纯从形式上来看和之前讲的高性能是一样的都是通过增加更多机 器来达到目的但其实本质上是有根本区别的高性能增加机器目的在于“扩展”处理性能高 可用增加机器目的在于“冗余”处理单元。
计算高可用
计算指业务的逻辑处理同样的算法和输入数据产出的结果都是一样的。
影响因素类似高性能中集群-任务分配这里主要考虑异常情况比如 1、任务分配器与服务器之间的交互和链接。连接建立、连接中断等 2、任务分配器需要增加分配算法。常见的双机算法有主备、主主主备方案又可以细分 为冷备、温备、热备
存储高可用
将数据从一台机器搬到到另一台机器需要经过线路进行 传输。 关键点以存储高可用的难点不在于如何备份数据而在于如何减少或 者规避数据不一致对业务造成的影响。
高可用状态决策
无论是计算高可用还是存储高可用其基础都是“状态决策”即系统需要能够判断当前的状态 是正常还是异常如果出现了异常就要采取行动来保证高可用。通过冗余来实现的高可用系统状态决策本质上就不可能做到 完全正确。
1、独裁式 独裁式的决策方式不会出现决策混乱的问题因为只有一个决策者但问题也正是在于只有一个 决策者。当决策者本身故障时整个系统就无法实现准确的状态决策。
2、协商式 协商式决策指的是两个独立的个体通过交流信息然后根据规则进行决策最常用的协商式决策 就是主备决策。
这个架构的基本协商规则可以设计成 2 台服务器启动时都是备机。 2 台服务器建立连接。 2 台服务器交换状态信息。 某 1 台服务器做出决策成为主机另一台服务器继续保持备机身份。
协商式决策的架构不复杂规则也不复杂其难点在于如果两者的信息交换出现问题比如主备连接中断怎么判断主机是否正常此时状态决策应该怎么做。目前是以增加连接双连接、三连接等来降低连接中断导致的问题。
民主式 民主式决策指的是多个独立的个体通过投票的方式来进行状态决策。例如ZooKeeper 集群在 选举 leader 时就是采用这种方式。 可扩展性
可扩展性指系统为了应对将来需求变化而提供的一种扩展能力当有新的需求出现时系统不需 要或者仅需要少量修改就可以支持无须整个系统重构或者重建。2个指标正确预测变化、完美封装变化。
正确预测变化 1、不能每个设计点都考虑可扩展性。 2、不能完全不考虑可扩展性。 3、所有的预测都存在出错的可能性。
完美封装变化
系统需要拆分出变化层和稳定层需要设计变化层和稳定层之间的接口
设计的时候考虑可扩展性但如果评估后发现可扩展性设计的代价太大 那就暂时不做等到真的有需求时再重构。 过早考虑可扩展性很多通用性和抽象都是推测的等到真的要落地了很可能发现事实并 非如此这就是预测是错误的。
低成本
低成本给架构设计带来的主要复杂度体现在往往只有“创新”才能达到低成本目标。这里 的“创新”既包括开创一个全新的技术领域这个要求对绝大部分公司太高也包括引入新技 术如果没有找到能够解决自己问题的新技术那么就真的需要自己创造新技术了。 类似的新技术例子很。 NoSQLMemcache、Redis 等的出现是为了解决关系型数据库无法应对高并发访问带来 的访问压力。 全文搜索引擎Sphinx、Elasticsearch、Solr的出现是为了解决关系型数据库 like 搜索的 低效的问题。 Hadoop 的出现是为了解决传统文件系统无法应对海量数据存储和计算的问题。
安全
从技术的角度来讲安全可以分为两类一类是功能上的安全一类是架构上的安全。
规模
规模带来复杂度的主要原因就是“量变引起质变”当数量超过一定的阈值后复杂度会发生质 的变化。常见的规模带来的复杂度有 功能越来越多导致系统复杂度指数级上升 数据越来越多系统复杂度发生质变