比如双11, 网站的特点,可能是在某一段时间会有大量访问,过了这段时间,恢复正常。
如果一直保持着“双11标准”运营,那是浪费,所以,就要考虑网站的伸缩性.
业务功能分离 (横向分离,前台,交易,库存,产品 等)
单一业务功能,通过集群实现伸缩.
应用服务器: 通过负载均衡 + 集群 实现伸缩性。
分布式缓存集群的伸缩性设计.
不同于应用服务器集群的伸缩性设计,分布式缓存集群的伸缩性不能使用简单的负载均衡来实现。因为分布式缓存服务器集群中不同服务器中缓存的数据各不相同,缓存访问请求不可以在缓存服务器集群中的任何一台处理,必须先找到缓存有需要数据的服务器,才能访问,这个特点严重制约着缓存服务器集群的伸缩性设计,因为新上线的缓存服务器没有任何缓存数据,而已下线的缓存服务器还缓存着网站的许多热点数据。必须让新上线的缓存服务器对整个分布式缓存集群影响最小,也就是说新加入缓存服务器后应使整个缓存服务器集群中已经缓存的数据可能还被访问到,这是分布式缓存集群伸缩性设计的最主要目标。{也就是说,设计上缓存服务器集群应该作为一个整体}
应用程序通过 Memcached 客户端访问 Memcached 服务器集群,Memcached客户端主要由一组 API, Memcached 服务器集群路由算法,Memcached 服务器集群列表及通信模块组成. 其中路由算法负责根据应用程序输入的缓存数据 KEY 计算得到应该将数据写入到Memcached的哪个服务器(写缓存) 或者应该从哪个服务器读数据(读缓存), 所以,在 Memcached分布式缓存系统中,对于服务器集群的管理,路由算法至关重要, 和负载均衡一样,决定着究竟该访问集群中的哪台服务器。
数据存储服务器集群的伸缩性设计
先按业务逻辑分库
分布式数据库集群.