构建可扩展的Web站点(三) - hfut_wowo的专栏 - 博客频道 - CSDN.NET



构建可扩展的Web站点(三) - hfut_wowo的专栏 - 博客频道 - CSDN.NET

八,什么是可扩展性?

可扩展不是指原始速度,也和特定的技术完全无关,甚至和逻辑层面的分离策略也不相关。简单来说,可扩展性有三个特性:

1,系统提供的能力可扩展;

2,系统容纳的数据量可扩展;

3,系统可维护。


九,扩展硬件平台

硬件平台的扩展主要有两种方式:一是垂直扩展,即用一个更为强大的硬件替代原有硬件,从而达到扩展目的;二是水平扩展,就是增加当前硬件的复制品来进行扩展。对于大型应用来说,明显水平扩展的优势较大。但是对于小型应用来说,垂直扩展比较吸引人,因为设计很容易。

不管是垂直扩展还是水平扩展,都需要考虑冗余,因为没有机器是不会发生故障的,这时就需要备份。备份有三种:冷备份、热备份和完全备份。

冷备份相当于一个备用手机,主手机损坏后,需要开启备用手机,并将数据从云端备份下来,即可正常使用;

热备份的一个典型是Mysql的主从数据库配置,当某一从库发生故障时,修改配置文件将此库从中去除,即可解决问题;

完全备份,典型的有负载均衡,无需人工配置,完全自检测失效组件,对于用户来说,服务一直是正常的。但完全备份存在震荡问题。


十,软件负载均衡

软件的负载均衡是通过运行在常规机器之上的服务软件,而不是运行在ASIC之上的负载均衡操作系统。软件的负载均衡可以在第四层做,即基于IP地址和端口的负载均衡。另一种是在第七层中做,即检查HTTP请求自身,查看请求和请求头信息,并将这些信息纳入平衡策略的考虑中去。因此在这种平衡策略中,可以基于查询字符串中含有的信息、cookie中的信息或者任何标头中的信息,当然也可以用第四层的信息。

对于负载均衡来说,更好的策略是将一个特定的请求映射到一台特定的服务器,为什么要这么做呢?这样就可以确保每台服务器的缓存是完全唯一的,比每台服务器都放完整的、相同的缓存要好得多。

对于更大规模的平衡,可能就需要多个集群了。这就像一个树的结构了。

除了HTTP流量需要平衡,其它服务也可以进行负载均衡,例如SMTP服务。


Read full article from 构建可扩展的Web站点(三) - hfut_wowo的专栏 - 博客频道 - CSDN.NET


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts