扩容种类
垂直扩容(纵向扩容):
提高系统硬件能力: 对单个一台服务器添加更多的内存和CPU。
水平扩容(横向扩容):
增加更多系统成员:添加多台内存和CPU差不多的服务器。
横向扩容适合Web系统扩展:
添加多台内存和CPU差不多的服务器。因为Web系统不需要更大的内存空间,线程之间依赖性不大,多是松耦的外部链接,可能需要不同的操作系统做不同的服务器。
java软件第三方插件进行扩展
读操作系统扩展: memcache ,redis ,CDN等缓存
写操作系统扩展:Cassandra 、Hbase
如何进行有效的扩容呢?扩容的依据是什么?
查看CPU利用率,内存占用率,网络带宽等。
软件层面比如QPS等
容量设计的时候需要考虑突发流量,一般要保留20%到30%的备用容量。
集群还要考虑灾备,比如部分机器发生故障的时候接负载均衡如何正确引流限流,避免雪崩式故障(cascading failure)。
工具的话,要看现有的技术框架。主要的目的就是做好实时监控和预警。