目录

  • 一、高可用(High Availability)
  • 二、高并发(High Concurrency)
  • 三、解决思路
  • 高可用:集群化(冗余)+自动故障转移
  • 高并发:垂直扩展与水平扩展
  • 总结



一、高可用(High Availability)

通过设计尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性。

二、高并发(High Concurrency)

通过设计保证系统能够同时并行处理很多请求。
高并发相关常用的一些指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per Second),并发用户数等。

三、解决思路

高可用:集群化(冗余)+自动故障转移

    高可用集群的出现是为了使集群的整体服务尽可能可用,从而减少由计算机硬件和软件易错性所带来的损 失。如果某个节点失效,它的备援节点将在几 秒钟的时间内接管它的职责。因此,对于用户而言,集群永远不会停机。高可用集群软件的主要作用就是实现故障检查和业务切换的自动化。
    当活动的服务或应用意外终止时,快速启用冗余或备用的服务器、系统、硬件或者网络接替它们工作。 故障转移(failover)与交换转移操作基本相同,只是故障转移通常是自动完成的,没有警告提醒手动完成,而交换转移需要手动进行

高并发:垂直扩展与水平扩展

垂直扩展:提高单机处理能。垂直扩展的方式有两种:
(1)增强单机硬件性能。例如:增加CPU核数如32核,网卡如万兆,硬盘如SSD,内存等。
(2)提升单机架构性能。例如:使用Cache来减少IO次数,使用异步来增加单服务吞吐量,使用无锁数据结构来减少响应时间;
水平扩展:增加服务器数量,线性扩充系统性能。
互联网分层架构中,各层次水平扩展的实践又有所不一样:
(1)反向代理层能够经过“DNS轮询”的方式来进行水平扩展;
(2)站点层能够经过nginx来进行水平扩展;
(3)服务层能够经过服务链接池来进行水平扩展;
(4)数据库能够按照数据范围,或者数据哈希的方式来进行水平扩展;
各层实施水平扩展后,可以经过增长服务器数量的方式来提高系统的性能,作到理论上的性能无限。


总结

浅学了一下高可用、高并发,还有很多不懂的地方。