本文主要是介绍高性能MySql学习笔记-第十一章:可拓展的MySQL,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1. 什么是可拓展性
- 可拓展性表明当需要增加资源以执行更多工作时系统能够获得划算的等同提升的能力。缺乏扩展能力的系统在达到收益递减的转折点后,将无法进一步增长。通俗来讲,就是增加资源来提升容量的能力。
- 多数系统最终会达到一个最大吞吐量临界点,超过这个点之后增加投入反而会带来负回报 —— 继续增加更多的工作负载,实际上会降低系统的吞吐量。
- 通用可拓展性定理(Universal Scalability Law,USL)描述拓展的偏差受两个因素的影响:无法并行执行的一部分工作、内部节点间或进程间的通信。
2. 拓展MySQL
- 在决定MySQL扩展前,应当尽量先采取优化性能、购买更强性能的硬件等方式获得拓展性,直到达到收益递减点。
- 向上扩展(垂直扩展)的复杂性比向外扩展简单得多。但是如果系统确实有可预见的向上拓展的天花板,就不要无限制地做向上拓展的规划。
向外拓展
向内拓展
3. 负载均衡
- 负载均衡的目的
- 可拓展性。
- 高效性。负载均衡可以更高效地使用资源,因为他可以控制将更多的工作分配给性能更好的服务器。
- 可用性。灵活的负载均衡策略可以时刻保持可用的服务器。
- 透明性。客户端无需关心是否存在负载均衡设置,也无需关系负载均衡后的服务器。
- 一致性。如果应用是有状态的,那么负载均衡器经应该将相关的查询指向同一个服务器,以防止状态丢失。
直接连接
- 直接连接也可以达到负载均衡的一些目的:比如通过复制上的读写分离、修改应用配置、修改DNS名、转移IP地址等。
引入中间件
- 许多负载均衡方案都会引入一个中间件,作为网络通信的代理。它一边接受所有的通信请求,另一边将这些请求派发到指定的服务器上,然后把执行结果发送回请求的机器上。
- 复制均衡算法一般有:随机、轮询、分配最少连接数、分配最快响应、哈希、权重等。
- 在新增服务器时,应当注意“冷启动”对用户请求的影响。
这篇关于高性能MySql学习笔记-第十一章:可拓展的MySQL的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!