高并发系统设计四-如何让系统易于扩展

在热点事件发生时,流量瞬间提升到 2~3倍甚至更高,最快的方式就是堆机器,但需要保证,在扩容了三倍的机器后,相应的系统也能支撑三倍的流量。

1、为什么提升扩展性会很复杂

集群系统中,不同的系统分层上可能存在一些瓶颈点,这些瓶颈点制约着系统的横向扩展能力,比如:系统的流量是每秒1000次请求,对数据库的请求量也是每秒1000次,如果流量增加了10倍,虽然系统可以通过扩容正常服务,但是数据库却成了瓶颈。

如果多数据库也进行扩容,存储集群中增加或者减少机器时,会涉及到大量数据的迁移,一般传统的关系型数据库都不支持。

站在整体的架构的角度,不仅仅是业务服务器的角度来考虑系统的扩展性,数据库、缓存、依赖的第三方、负载均衡、交换机带宽等都是系统扩展需要考虑的因素。

2、高可扩展行的设计思路

拆分是提升系统扩展性最重要的一个思路,将一个庞杂的系统拆分成独立的,有单一职责的模块。即将复杂问题简单话。

  • 存储层的扩展性
  • 业务层的扩展性

3、redis 扩展

redis扩展主要两方面。主备方案以及集群方案。

  • 主备
    用 redis 的 sentinel(哨兵)方案主要是解决 redis 主节点故障后的自动切换。它负责持续监控主从节点的健康,当主节点挂掉时,自动选择一个最优的从节点切换为主节点。

  • 集群方案

    • codis
    • edis官方提供的cluster。
发布了57 篇原创文章 · 获赞 3 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/wmdkanh/article/details/105442195