docker随笔10--mysql集群准备

时间:2019-07-09 19:39:59   收藏:0   阅读:95

1.mysql中存在的问题(背景):

  单一mysql,如果面临高并发,和海量存储时不满足需求

2.mysql的集群解决方案:

    主库:写入数据

    从库:读库

    要求: 两个库的数据完全一致

       写库必须到主库

         读库必须到从库

    缺点:

      应用程序需要连接多个节点,对应应用程序的开发变得复杂----->通过中间件来解决(不使用中间件的情况下,也可以在程序中手动分离,可利用aop编程,可以利用不同的控制器方法名称的前缀区分)

      主从之间的同步是异步的,弱一致性,数据同步到主库以后,比如网络延时等情况可能同步到从库失败,这样主从库数据就会不一样了(数据丢失了),对于数据安全要求较高的项目不合理。------>可以通过pxc解决

 

    mysql中间件(mycat):

            使用中间件进行读写分离以后,所有的请求的压力都会集中在中间件上,中间件的性能成了整个系统的性能瓶颈,所以可以布置多个中间件,再通过负载均衡调度请求每个中间件的数量 。

    整理流程:应用请求(读写操作)---->负载均衡(代理)---->请求中间件(中间件节点)----->区分读写操作------>请求主库(从库)

    可以对中间件也进行集群化部署。

    因为使用pxc的,强一致性会损失很多的性能,所以通过中间件的根据特定的表走pxc,一般的则使用主从复制即可。

3.主从复制原理:

  注意点:

    master的mysql版本和slave的版本要一致。

    master和slave中的数据需要一致

    master开启二进制日志,master和slave中的server_id都要唯一。

    mysql中的my.cnf配置文件中中log-bin可以制定binary log的名字。

4.原理图如下

技术分享图片

 

原文:https://www.cnblogs.com/callmelx/p/11116232.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!