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

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

数据库的架构原则

  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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm 导包_PyCharm入门教程——自动导入(上)

    pycharm 导包_PyCharm入门教程——自动导入(上)当你引用还没有导入的类时,PyCharm会帮助你找到此文件并将其添加到导入列表中。你可以导入单个类或整个包,具体取决于你如何设置。import语句将添加到imports部分,但插入符号不会从当前位置移动,并且你当前的编辑会话不会挂起。此功能称为ImportAssistant(导入助手)。使用ImportAssistant是处理PyCharm中导入的首选方法,因为命令行不支持导入优化。此功…

    2022年8月25日
    7
  • echarts中国地图如何标记散点图[通俗易懂]

    echarts中国地图如何标记散点图[通俗易懂]工作中会遇到echarts在地图上面标记点位,后端数据传给城市名和坐标轴给你以后,如何添加到echarts上面渲染呢echarts需要的数据例子{name:”深圳”,value:[114.271522,22.753644]}name是城市名,value是坐标轴拿到数据后找到echarts的配置属性->series代码如下series:[//常规地图{type:’map.

    2022年10月7日
    4
  • ucosii操作系统和linux,请高手介绍下uCOSII和Linux的差异?

    ucosii操作系统和linux,请高手介绍下uCOSII和Linux的差异?区别:ucos有执行效率高、占用空间小、实时性和可扩展性强等特点,linux有稳定性、强大网络功能和出色的文件系统等优点。联系:是两种性能优良源码公开且被广泛应用的的免费嵌入式操作系统,可以作为研究实时操作系统和非实时操作系统的典范。μC/OSII(Micro-ControllerOperatingSystemTwo)是一个可以基于ROM运行的、可裁剪的、抢占式、实时多任务内核,具有高度可…

    2022年5月22日
    39
  • 《我在风衣里藏了把刀》—— 转

    《我在风衣里藏了把刀》—— 转那天,我在风衣里藏了把刀,因为我要杀掉一个仇人。我非常恨她,但又不敢骂她,所以我只好选择谋杀。她的个子不高,却是武校的高才生,我估计空手打不过她,所以得藏把刀。她很漂亮,但从来都不看我一眼,所以

    2022年7月2日
    21
  • vscode设置vue模板_vscode怎么创建vue项目

    vscode设置vue模板_vscode怎么创建vue项目VSCode配置Vue模板代码前端行业使用的编辑器有很多,比如VSCode和webStorm,其中在创建vue文件后webStorm可以自动生成相关的代码,而在VSCode中得一个一个的敲,这样既浪费时间又效率低,因此,在VSCode中可以一键生成vue模板吗?当然可以,过程如下:1、打开VSCode编辑器2、左上角文件(F)=>首选项=>用户片段3、在出现的框中输入vue之后按回车键4、在出现的vue.json文件内写入以下代码

    2025年9月25日
    5
  • Oracle存储过程详细教程「建议收藏」

    Oracle存储过程详细教程「建议收藏」Oracle存储过程详细教程点关注不迷路,欢迎再访! 目录Oracle存储过程详细教程一.创建存储过程语法二.输出案例三.调用存储过程3.1声明declare关键字3.2不声明declare关键字3.3call四.带有参数的存储过程五.in,out参数问题六.异常写法七.循环7.1while循环7.2for循环八.基本正删改查一.创建存储过程语法createorrep…

    2022年7月17日
    12

发表回复

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

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