扩展阶段是什么样子(扩展的三种类型)

lxf2023-10-26 22:10:01

[h/]http://aronlulu.iteye.com/blog/790641

Mysql在互联网领域如此广泛的应用很大程度上是因为它的复制机制,简单实用。用几台PC,很容易提升性能,是中小型网站必备的药方。

首先,我们在什么情况下应该扩充数据库,建网站,建数据库。有一天,网站开始流行,访问量急剧增加,这就意味着从你的服务器上读取网页的连接更多了,IO瓶颈就来了。自然,我们希望添加更多的计算机来分担压力,但是数据应该与源主机上的数据库中的数据一致。这时候就该开始扩展数据库了,复制开始派上用场。

复制的实现机制

第一步,主机必须打开二进制日志Log,里面包含数据库的各种操作记录。从机通过IO线程连接到主控主机,请求日志的内容。该请求还应该包括日志的请求位置,即日志开始的位置。

第二步:master收到请求后,开始通过IO线程向slave返回内容,返回的内容应该包括日志文件的位置,以及下次从哪里开始获取新的日志。

第三步,从机的IO线程将获取的内容记录在本地中继日志文件中,位置内容记录在master-info文件中,以便下次可以快速定位到主机的日志内容。

第四步,slave解析这些日志内容并执行,这样主从数据就可以同步了。

值得注意的是,第三步和第四步同时执行(mysql早期是分开执行的),两个线程(IO线程和sql线程)异步执行。这样做的好处是减少同步时间,在空之间切换,降低数据丢失的概率。

这是上位机和下位机之间的通信过程。

显然,实际应用中不可能只有一个从,主要有几种聚类方法

主-从

这是最简单的集群模式原理同上

主-主
两个主,哪个。它可以防止主服务器的停机时间导致需要重新部署从服务器。这里有个问题,就是两个主意味着双方都要提供读写功能。在实际操作中,应该避免同一个表在主表的两侧提供写功能,这样会导致脏数据。有些表应写在主机1侧,有些表应写在主机2侧。

主-从-从

这个架构的目的也很明确。当普通主从架构的从机越来越多的时候,连接到主机的IO线程就会越来越多,主机还要对外提供写服务,压力太大。这种架构是给主设备解压,把IO转移给从设备,然后从设备给二级从设备提供IO服务。弊端自然是显而易见的,耽误严重。

主人-主人-奴隶-奴隶

这种最复杂,最安全,最稳定,相当于把第二种和第三种结合起来。

上述垂直扩展架构是常用的,主要解决大规模并发读取的问题。至于并发写,需要用mysql数据分段,明天再写。

adminjs.cn是一个以CSS、JavaScript、Vue、HTML为核心的前端开发技术网站。我们致力于为广大前端开发者提供专业、全面、实用的前端开发知识和技术支持。 在本网站中,您可以学习到最新的前端开发技术,了解前端开发的最新趋势和最佳实践。我们提供丰富的教程和案例,让您可以快速掌握前端开发的核心技术和流程。 Adminjs.cn还提供一系列实用的工具和插件,帮助您更加高效地进行前端开发工作。我们提供的工具和插件都经过精心设计和优化,可以帮助您节省时间和精力,提升开发效率。 在Adminjs.cn中,您可以找到您需要的一切前端开发资源,让您成为一名更加优秀的前端开发者。欢迎您加入我们的大家庭,一起探索前端开发的无限可能!