常用的数据库架构及主从的工作原理

常用的数据库架构及主从的工作原理

数据库的架构原则

  1. 高可用
  2. 高性能
  3. 可拓展
  4. 一致性

数据库常用的架构

目前市面上常用的架构主要有两种:
1、一主多从
2、双机热备

下面我们来了解一下,什么是一主多从呢?

一主多从

一主多从指的是,当我们客户端发起读写请求的时候,我们会从mysql服务进行读写数据。假设我们目前有三台mysql服务,其中一台作为主master服务,另外两台作为从salve。master拥有读写的权限,主要承担了写的工作,salve只有读的权限,主要承担了读的操作。当客服端发起请求时,他会将请求分流,实现读写分离。

优点
1、读写分离,分担了单台数据库或者单台服务器的压力

缺点
1、主从延时,可能会导致数据的不一致性

双机热备

什么是双机热备?

双机热备,其实刚好就是处理了一主多从的主从延时问题,避免了主从不一致的情况。并且双机热备是读和写都在一台服务上进行操作。

优点:

1、数据马上就写入,没有主从延时
2、当master挂掉的时候,他会从vip(虚拟ip)就会指向slave上,然后salve就会变成称为master,所以的写入操作就会到第二台服务器上,确定系统的高可用性

缺点:
1、比如当master宕机的时候,slave会变成主,那么期间哪怕master服务恢复正常,原先的master会变成从,slave变成主,如果想要恢复的话,就需要从Keepalived进行调整。

了解了这么多,我们来看一下一主多从和双机热备有什么区别?

首先双机热备弥补了一主多从,主从延时的缺点;而双机热备它在服务器上的压力并没有被分担,他主要是靠硬件往上扛。

个人理解:
当我们的业务如果读的操作偏多,其实一主多从的架构会更适合一点,反之当我们系统的写入操作更多的时候,那么双机热备的架构会更好。其实每个架构都会有自己的优缺点,适用于我们的业务场景的架构才是最好的。

主从同步的工作原理

1、master 将改变记录到二进制日志(binary log)中
2、slava将master的 binary log events拷贝到它的中继日志(relay log)
3、slave 重做中继日志中的事件,将改变反映它自己的数据

以上的内容属于自己对于数据库架构的理解,然后整理下来,如果有理解错误的地方,欢迎随时讨论~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100710.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • php openssl生成证书,php中使用OpenSSL生成证书及加密解密[通俗易懂]

    php openssl生成证书,php中使用OpenSSL生成证书及加密解密[通俗易懂]摘要:这篇文章主要介绍了PHP中使用OpenSSL生成证书及加密解密,需要的朋友可以参考下依赖于OpenSSL扩展/*加密解密*/functionauthcode($string,$operation=’E’){$ssl_public=file_get_contents(DAT这篇文章主要介绍了PHP中使用OpenSSL生成证书及加密解密,需要的朋友可以参考下依赖于OpenSSL扩展…

    2022年9月19日
    3
  • vue axios跨域问题的三种解决方案_vue如何实现跨域

    vue axios跨域问题的三种解决方案_vue如何实现跨域vue3项目,axios跨域处理,代理

    2025年9月6日
    4
  • 电路交换和分组交换的异同_电路交换的三个过程

    电路交换和分组交换的异同_电路交换的三个过程从交换技术的发展历史看,数据交换经历了电路交换、报文交换、分组交换和综合业务数字交换的发展过程。  电路交换  电路交换就是计算机终端之间通信时,一方发起呼叫,独占一条物理线路。当交换机完成接续,对方收到发起端的信号,双方即可进行通信。在整个通信过程中双

    2022年9月16日
    4
  • maven项目 porm.xml中Dependency Scope属性「建议收藏」

    maven项目 porm.xml中Dependency Scope属性「建议收藏」DependencyScope在POM4中,<dependency>中还引入了<scope>,它主要管理依赖的部署。目前<scope>可以使用5个值:*compile,缺省值,适用于所有阶段,会随着项目一起发布。*provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。*runtime,…

    2022年6月29日
    28
  • 手眼标定过程记录

    手眼标定过程记录手眼标定过程记录============================================================================================以下四个变量是最重要的数据rvecs_rb2gripper,tvecs_rb2gripperrvecs_cam,tvecs_cam1.首先排查机械臂末端到底座的旋转平移

    2022年5月27日
    36
  • method_exists函数

    method_exists函数
    method_exists(mixed$object,string$method_name)—Checksiftheclassmethodexists
    确认$object类中是否存在$method_name的方法。如果存在返回TRUE;如果不存在返回FALSE.

    2022年7月15日
    19

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号