zoukankan      html  css  js  c++  java
  • 数据库集群

    常见数据库集群策略

      数据库集群的三大用处:大型互联网程序用户群体庞大,所以架构必须要特殊设计。单节点的数据库无法满足性能上的要求。单节点的数据库没有冗余设计,无法满足高可用。

      这三个需求我们单独来理解,随着上网用户的增加,为了承载更多用户访问,互联网程序的体量自然也就越来越大。大的体量要朝着优化的方向发展,于是需要提出更多特殊设计。

      数据访问量越来越大,一个节点上处理100万次的读和写和两个节点做读和写效率完全不一样,例如master主节点,只做写节点,slave节点只做读功能,这样单个节点只操作一项功能,增加了访问次数,同时避免了不同操作的冲突。

      数据库的单节点保存,没有备份在程序,在运行中具有很高的风险。如果一个这个存储重要信息的节点崩溃,那么整个系统将停止运行,无法满足高可用。多个节点进行备份存储,一个节点挂掉另一个节点可以继续使用。集群的意义就体现在这里,提高访问量,提升性能,满足高可用。

    1、Replication

      replication策略-拷贝,也就是我之前配置过的主从同步,master主节点负责写,从slave负责读。这里就有一个问题,从节点slave写数据,master就会不存在这个插入的数据。

      replication有个毛病,就是当master成功写入数据,但是如果同步到slave时失败了,那去slave读数据的时候,这条数据没有,而master又是出现了插入成功,那这就是最要命的。

    2、Pxc

      pxc策略,保存高价值数据很重要,在一个节点提交了数据,那么其他节点跟着同步。数据所有都是一致的。

     

    3、对比

     安装Pxc集群

    1、去这个网站找到下载集群的命令:https://hub.docker.com/r/percona/percona-xtradb-cluster/,还是最好去网站里面去找吧,万一他哪天更新了,命令变了,原命令就用不了了。

    docker pull percona/percona-xtradb-cluster

    2、给这个镜像改个名字,名字太长了

    查看镜像名:docker images
    改名:docker tag docker.io/percona-xtradb-cluster pxc
    把原来的删掉:docker rmi docker.io/percona-xtradb-cluster

    3、出于安全考虑还是要设置网段,相关网段的操作如下

    创建网段:docker network create --subnet=172.18.0.0/24 net1
    查看网段:docker network inspect net1
    删除网段,这个不用做,只是让你知道有这个命令:docker network rm net1

    4、pxc节点映射数据目录的方法,

    创建数据卷:docker volume create v1 
    查看数据卷:docker inspect v1
    删除:docker volume rm v1
  • 相关阅读:
    二叉树的递归遍历 The Falling Leaves UVa 699
    二叉树的递归遍历 天平UVa839
    二叉树的递归遍历 Tree UVa548
    通过缓冲传递数据-结构体
    fread读取文件(二进制文件)
    socket编程--相关函数--sendto();read();
    socket 编程--sockaddr与sockaddr_in区别与联系(转)
    百度Apollo 尝试
    检测服务器端口是否被占用
    qt5的.ui文件在VS2010中无法编译问题
  • 原文地址:https://www.cnblogs.com/HelloM/p/14330013.html
Copyright © 2011-2022 走看看