[读书笔记]High Performance MySQL–第八章

Chapter 8. Load Balancing and High Availability

如果你建立起 replication,并且你有一些 slave 服务器,下个你要面对的难题是如何引导分配这些流量?

8.1 Load Balancing Basics
负载平衡背后的理念很简单。你有一些服务器,你想让负载尽可能平均地分配给这些服务器。除了这些后端的服务器外,你需要一个负载平衡器来引导进入的连接到合适的服务器去。

负载平衡有四个基本的目标: scalability , effciency , Availability , Transparency 。

8.1.1 Differences Between MySQL and HTTP Load Balancing
此节介绍了 MySQL 和 HTTP 在负载平衡方面的不同之处。

8.2 Configuration Issues
负载平衡器在引导流量时,它要清楚两点:第一,那些服务器是可用的?第二,这些可用的服务器中,哪个要接受下一个连接。

8.2.1 Health Checks

8.2.1.1 Determining health
一个好的健康型检查(health check)依赖于程序的需要和系统中最关键的部分。比如 replication 中,根据分析 SHOW SLAVE STATUS 的输出结果来证实 slave 服务器确实可用。

8.2.1.2 Connection limits
max_connections 设置过低会导致 MySQL 在仍然有处理能力的情况下拒绝连接,从而被判定不是其不是可用服务器。

8.2.2 Next-Connection Algorithms
不同的负载平衡器有不同的算法来决定那个服务器会接受下个连接。下面列举了一些算法:Random,Round-robin,Least connections,Fastest response,Hashed,Weighted。

8.2.2.1 The consequences of poor algorithm choice
此节讲了一个案例,说得是负载平衡器的算法要根据具体情况具体而定。(好像是废话)

8.3 Cluster Partitioning
Partitioning 允许你将表的不同部分按照设定的规则保存在文件系统上。按照效果来讲,就是表的不同部分是作为独立表的形式存储在不同的位置。

8.4 High Availability
本节介绍了一些高可用性的解决方案。

Post a Comment