当前位置: 首页 > news >正文

MySQL高可用

MySQL主从复制的过程是怎么样的

分为3个阶段:

  • 写入binlog:主库修改数据后,会写入binlog日志,从库连接到主库后,主库会创建一个log dump线程,用于发送bin log的内容
  • 同步binlog:从库会专门创建一个I/O线程来连接主库的log dump线程,来接受主库的binlog日志,再把binlog信息写入relay log的中继日志里,再返回给主库“复制成功”的响应
  • 回放binlog:从库会专门创建一个用于回放binlog的SQL线程,去读relay log中继日志,然后回放binlog更新存储引擎的数据,实现主从的数据一致性

MySQL提高了哪些复制策略

主要有三种复制策略:同步复制、异步复制、半同步复制,MySQL默认的复制模型是异步复制

同步复制: 主库提交事务的线程要等待所有从库的复制成功响应,才返回客户端结果。性能最差,但是安全性最好。

异步复制:主库提交事务的线程不会等待binlog同步到从库,就返回客户端结果。性能最好但是安全性最差。

半同步复制:主库提交事务的线程不用等待所有的从库复制成功响应,只需要等待一部分复制成功响应回来就可以。优点是出现主库宕机,至少还有一个从库有最新的数据,不会出现数据丢失的风险。

MySQL主从复制的数据延迟怎么解决

  • 使用缓存解决:可以在写入数据主库的同时,把数据写到Redis中,这样其他线程再获取数据时会先到Redis中查,也可以保证数据的一致性,不过这种方式会带来缓存和数据库的一致性问题。
  • 直接查询主库:对于数据延迟铭感的业务,可以强制读取主库,但是查询数据量不能太大,不然会出现主库写请求锁行,影响读请求的执行。

MySQL主从架构中,读写分离怎么实现

  • 一种简单的做法:提前将所有数据源配置在工程中,每一个数据源对应一个主库或者从库,然后改造代码,将某一个SQL语句交给其中一个数据源来处理。但是SQL路由规则侵入代码逻辑,不利用代码的维护
  • 另一种做法:独立部署的代理中间件,如MyCat,这一类中间件独立部署在独立的服务器上,一般用标准的MySQL通信协议,可以代理多个数据库。优点是隔离底层数据库与上层应用访问的复杂度,比较适合有独立运维团队的公司;缺点是所有的SQL语句都要跨两次网络传输,有一点的性能损耗,再就是运维中间件是一个专业且复杂的工作,需要技术沉淀。

MySQL主库挂了怎么办

MySQL没有实现主服务器宕机和处理故障的功能,要实现自动主从故障迁移的功能,可以使用开源的MySQL高可用套件MHA,MHA可以在主数据库发生宕机的时候,剔除原有主机,选出新的主机,然后对外服务。

什么是分库分表,什么时候需要分库,什么时候需要分表

  • 分库分表是把原本存储于单个数据库上的数据拆分到多个数据库,把原来存储在单张表的数据拆分到多张表中。
  • 分库:当单台MySQL扛不住高并发流量的时候,就需要分库。
  • 分表:当单张表数据量太大的时候,经验值是500W以上的时候,就需要分表,通过减少每次查询数据总量来解决查询慢的问题。

分库分表后,会产生什么问题

  • 分布式事务问题: 对业务进行分库之后,一次大的操作由多个小操作组成,这些小的操作分布在不同的服务器上,分布式事务需要保证这些小操作要么全部成功,要么全部失败。金融类的服务,可以使用分布式中间件实现TCC事务模型;互联网业务通常对一致性要求比较低,可以用本地消息表来实现分布式事务。
  • 全局唯一性问题:在单库单表的情况下,业务ID可以依赖数据库的自增来实现。但在分库。分表后,如果还是这样,会导致主键重复。我们可以使用雪花算法或者美团leaf算法来生成全局唯一性主键ID
  • 跨库跨表关联问题:分库分表后,跨库和跨表的查询操作实现起来比较复杂。可以通过冗余额外字段避免跨库跨表。或者交给数据库分库分表中间件来实现,也可以将数据全量存到ES中,在ES中查询。
  • 跨库跨表COUNT查询问题:数据在不同的库不同的表,进行COUNT查询比较复杂。可以将计数的数据单独存到一张表中,或者将聚合查询的数据同步到ES中,交给ES去处理

相关文章:

MySQL高可用

MySQL主从复制的过程是怎么样的 分为3个阶段: 写入binlog:主库修改数据后,会写入binlog日志,从库连接到主库后,主库会创建一个log dump线程,用于发送bin log的内容同步binlog:从库会专门创建一…...

OpenHarmony-3.HDF Display子系统(6)

Display 子系统 1.Display驱动模型介绍 当前操作系统和 SOC 种类繁多,各厂商的显示屏器件也各有不同,随之针对器件的驱动代码也不尽相同,往往是某一款器件驱动,只适用于某单一内核系统或 SOC,如果要迁移到其他内核或者…...

第10章:CSS最佳实践 --[CSS零基础入门]

代码组织 在CSS开发中,良好的代码组织和最佳实践对于项目的可维护性和扩展性至关重要。以下是两个示例,展示了如何遵循CSS最佳实践来组织代码。 示例 1: 使用 BEM(Block Element Modifier)命名法 BEM 是一种用于提高 CSS 可读性…...

备战美赛!2025美赛数学建模C题模拟预测!用于大家练手模拟!

完整的思路代码模型见文末 2025 美赛数学建模 C 题 模拟题:城市交通拥堵指数的预测与管理策略 背景 随着全球城市化进程的加快,交通拥堵问题成为城市发展的重要挑战之一。交通拥堵不仅影响居民出行效率,还增加了能源消耗和碳排放。近年来&…...

ESP8266 Ubuntu 安装

文章参考:https://blog.csdn.net/AUST_129/article/details/119406722文章浏览阅读1.8k次,点赞4次,收藏19次。参考:https://docs.espressif.com/projects/esp8266-rtos-sdk/en/latest/get-started/linux-setup.htmlhttp://aicloud…...

tryhackme-Pre Security-Defensive Security Intro(防御安全简介)

任务一:Introduction to Defensive Security防御安全简介 此room的两个要点: Preventing intrusions from occurring 防止入侵发生Detecting intrusions when they occur and responding properly 检测发生的入侵并正确响应 防御安全还有更多内容。 除上…...

单片机:实现倒计时(附带源码)

使用单片机实现倒计时功能是一个常见的嵌入式应用,它能帮助你更好地理解如何进行时间控制和如何通过定时器实现精确的倒计时。通过该项目,你将学习如何使用单片机的定时器来进行时间计算,并通过LED或LCD显示倒计时的结果。 1. 项目概述 倒计…...

安全防御之可信计算技术

可信计算技术是一种计算机安全体系结构,旨在提高计算机系统在面临各种攻击和威胁时的安全性和保密性。它通过包括硬件加密、受限访问以及计算机系统本身的完整性验证等技术手段,确保计算机系统在各种攻击和威胁下保持高度安全和保密性。 一、可信计算基…...

视频生成缩略图

文章目录 视频生成缩略图使用ffmpeg 视频生成缩略图 最近有个需求&#xff0c;视频上传之后在列表和详情页需要展示缩略图 使用ffmpeg 首先引入jar包 <dependency><groupId>org.bytedeco</groupId><artifactId>javacpp</artifactId><vers…...

PySide6程序框架设计

pyside6有一个优点自动适配高分辨ui pyqt5需要自己写这部分逻辑 1、主程序代码 DINGSHI01Main.py # -*- coding: utf-8 -*- import sys,time,copy from PySide6.QtWidgets import QWidget,QApplication from PySide6.QtCore import Qt from PySide6 import QtCore, QtGui, Q…...

WebSocket入门与结合redis

WebSocket是什么 WebSocket 是一种用于在客户端和服务器之间建立双向通信的协议&#xff0c;它能实现实时、持久的连接。与传统的 HTTP 请求响应模式不同&#xff0c;WebSocket 在建立连接后允许客户端和服务器之间相互发送消息&#xff0c;直到连接关闭。由于 WebSocket 具有…...

锂电池SOH预测 | 基于BiGRU双向门控循环单元的锂电池SOH预测,附锂电池最新文章汇集

锂电池SOH预测 | 基于BiGRU双向门控循环单元的锂电池SOH预测&#xff0c;附锂电池最新文章汇集 目录 锂电池SOH预测 | 基于BiGRU双向门控循环单元的锂电池SOH预测&#xff0c;附锂电池最新文章汇集预测效果基本描述程序设计参考资料 预测效果 基本描述 锂电池SOH预测 | 基于Bi…...

C# 结构体和类

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、类&#xff08;Class&#xff09;二、结构体&#xff08;Struct&#xff09;示例代码&#xff08;定义类和结构体&#xff09;类的继承代码示例&#xff08…...

C语言中的内存管理:理解指针、动态内存分配与内存泄漏

在C语言中&#xff0c;内存管理是一个至关重要的主题。与许多高级语言不同&#xff0c;C语言要求程序员显式地管理内存的分配与释放。虽然这种做法提供了更高的灵活性和控制权&#xff0c;但也容易导致内存泄漏、越界访问等问题。正确地管理内存对于编写高效、稳定的C程序至关重…...

web:pc端企业微信登录-vue版

官方文档&#xff1a;developer.work.weixin.qq.com/document/pa… 不需要调用ww.register&#xff0c;直接调用ww.createWWLoginPanel即可创建企业微信登录面板 - 文档 - 企业微信开发者中心 (qq.com) 引入 //通过 npm 引入 npm install wecom/jssdk import * as ww from we…...

GC.2015.四年级

GC.2015.四年级.01.奖励 题目描述 晨晨班主任想奖励班里面的每个学生一只圆珠笔和铅笔&#xff0c;已知每只圆珠笔和铅笔的价格&#xff0c;以及班里面的学生人数n&#xff0c;你能帮助老师算出总价吗&#xff1f; 输入格式 第一行&#xff1a;一个整数n&#xff0c;代表班里…...

一篇文章掌握WebService服务、工作原理、核心组件、主流框架

目录 1、WebService定义 解决问题&#xff1a; 2、WebService的工作原理 2.1 实现一个完整的Web服务包括以下步骤 2.2 调用方式 3、Web Service的核心组件 3.1 XML 3.2 SOAP 3.3 WSDL 3.4 UDDI 4、主流框架 4.1 AXIS(已淘汰) 4.2 XFire 4.3 CXF 5、Soap协议详解…...

中软高科身份证云解码金融(银行)解决方案介绍

多年来&#xff0c;中软高科一直深耕身份证云解码领域&#xff0c;对身份证云解码应用于金融&#xff08;银行&#xff09;&#xff0c;进行了大量且深入的研究。从长期调研来看&#xff0c;金融&#xff08;银行&#xff09;的痛点需求主要有&#xff1a; 传统身份证解码设备…...

Linux NVIDIA GPU linpack 测试

前言 多节点多GPU测试有点坑,这篇文章有解决方法。 环境 操作系统信息 lsb_release -aNo LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.3 LTS Release: 22.04 Codename: jammycpu 信息 lscpuArchitecture: x86_64CPU op-mod…...

LiteFlow决策系统的策略模式,顺序、最坏、投票、权重

个人博客&#xff1a;无奈何杨&#xff08;wnhyang&#xff09; 个人语雀&#xff1a;wnhyang 共享语雀&#xff1a;在线知识共享 Github&#xff1a;wnhyang - Overview 想必大家都有听过或做过职业和性格测试吧&#xff0c;尤其是现在的毕业生&#xff0c;在投了简历之后经…...

“AI换脸”骗过人脸识别?黑产攻击新手段应如何防御?

在著名美剧《权力的游戏》中&#xff0c;有一个神秘的刺客组织叫“无面者”&#xff0c;这个组织中的人可以通过某种神秘手段切换无数种不同的面孔&#xff0c;实现“一人千面”。 电视剧毕竟魔幻。但如今&#xff0c;基于人工智能的深度合成伪造技术正在让“一人千面”成为现…...

面试题整理6----什么是进程最大数、最大线程数、进程打开的文件数,怎么调整

什么是进程最大数、最大线程数、进程打开的文件数&#xff0c;怎么调整 1. 进程最大数1.1 调整方法&#xff1a; 2. 最大线程数2.1 调整方法&#xff1a; 3. 注意事项 #linux 1. 进程最大数 进程最大数是指操作系统允许同时运行的进程数量上限。这个限制通常由内核参数 ulimi…...

android RadioButton + ViewPager+fragment

RadioGroup viewpage fragment 组合显示导航栏 1、首先主界面的布局控件就是RadioGroup viewpage <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools…...

Zabbix6.0升级为6.4

为了体验一些新的功能&#xff0c;比如 Webhook 和问题抑制等&#xff0c;升级个小版本。 一、环境信息 1. 版本要求 一定要事先查看官方文档&#xff0c;确认组件要求的版本&#xff0c;否则版本过高或者过低都会出现问题。 2. 升级前后信息 环境升级前升级后操作系统CentOS…...

Unity 根据文本宽度自动移动图像位置

游戏中有时候需要变动的显示一个物品的数量&#xff0c;变化的文本宽度不停的变化&#xff0c;这时候需要将物品的icon随着文本的长度而改变位置。 实现思路&#xff1a;使用Content Size Fitter来动态改变内容的大小。 首先建立一个文本组件&#xff0c;添加Content Size Fi…...

spring @Mapper Converter转换泛型异常

spring Mapper Converter转换泛型异常 需要在每个list类型转换上面加Named 注解&#xff0c;否则会影响page生成的类型转换 比如&#xff1a; import org.mapstruct.Mapper; import org.mapstruct.Named;import com.baomidou.mybatisplus.core.metadata.IPage; import com.b…...

如何设计一个秒杀系统

开局一张图 结局要说清 对于设计一个秒杀系统&#xff0c;结合图片分层结构&#xff0c;根据每一层从访问层&#xff0c;负载层&#xff0c;服务层&#xff0c;业务层&#xff0c;支撑层&#xff0c;数据层&#xff0c;详细说明每一层应该怎么设计。 应该注意那些事项。比如访…...

SPL06 基于stm32F103 HAL库驱动(软件模拟IIC)

talk is cheap, show you my code SPL06.c #include "SPL06.h"//*************全局变量*************// Factor_List* b_list; //存储过采样率对应的系数KP&#xff0c;KT COEF_ValueStruct Coefficient { 0 }; //存储校准系数…...

arcgisPro将面要素转成CAD多段线

1、说明&#xff1a;正常使用【导出为CAD】工具&#xff0c;则导出的是CAD三维多线段&#xff0c;无法进行编辑操作、读取面积等。这是因为要素面中包含Z值&#xff0c;导出则为三维多线段数据。需要利用【复制要素】工具禁用M值和Z值&#xff0c;再导出为CAD&#xff0c;则得到…...

Cocos Creator 试玩广告开发

之前主要是使用Unity,这次刚好项目是试玩游戏的开发&#xff0c;所以临时学了Cocos来开发。所以这篇文章&#xff0c;更加关注从Unity转到Cocos开发的经历以及试玩的基本开发。 首先&#xff0c;我是没有使用过Cocos的&#xff0c;也没有接触过Ts语言&#xff0c;对于Ts的开发开…...

【Linux】解锁文件描述符奥秘,高效缓存区的实战技巧

fd和缓冲区 1. 文件描述符fd1.1. 概念与本质1.2. 打开文件的管理1.3. 一切皆文件的理解1.4. 分配规则1.5. 重定向的本质1.5.1. dup2 2. FILE中的缓冲区2.1. 概念2.2. 存在的原因2.3. 类型(刷新方案)2.4. 存放的位置2.4.1. 代码证明、现象解释 2.5. 模拟C标准库中的方法 1. 文件…...

MySQL基础笔记(五)

在此特别感谢尚硅谷-康师傅的MySQL精品教程 获取更好的阅读体验请前往我的博客主站! 如果本文对你的学习有帮助&#xff0c;请多多点赞、评论、收藏&#xff0c;你们的反馈是我更新最大的动力&#xff01; 约束 1. 约束(constraint)概述 1.1 为什么需要约束 数据完整性&…...

夯实数字技术,培育创新人才:数据科学与大数据技术专业人才培养实践

近年来&#xff0c;得益于全球各国家和地区对大数据产业的政策扶持以及数字经济的蓬勃发展&#xff0c;大数据市场在全球范围内展现出了迅猛的增长态势。国家层面相继出台了诸如《“数据要素 ” 三年行动计划&#xff08;2024—2026 年&#xff09;》《数字中国建设整体布局规划…...

Java爬虫大冒险:如何征服1688商品搜索之巅

在这个信息爆炸的时代&#xff0c;数据就是力量。对于电商平台而言&#xff0c;数据更是金矿。今天&#xff0c;我们要踏上一场Java爬虫的冒险之旅&#xff0c;目标是征服1688这个B2B电商巨头&#xff0c;获取按关键字搜索的商品信息。这不仅是技术的挑战&#xff0c;更是智慧的…...

IEC 101/104 中为什么我们需要单点和双点信号

REDISANT 提供互联网与物联网开发测试套件 # 互联网与中间件&#xff1a; Redis AssistantZooKeeper AssistantKafka AssistantRocketMQ AssistantRabbitMQ AssistantPulsar AssistantHBase AssistantNoSql AssistantEtcd AssistantGarnet Assistant 工业与物联网&#xff1…...

01、NodeJS学习笔记,第一节:Node.js初识与内置模块

一、初识Node.js与内置模块 ##网址 https://nodejs.org##npm包 https://www.npmjs.com/ &#xff08;搜索&#xff09;https://registry.npmjs.org/ &#xff08;下载&#xff09;1、初识Node.js ##思考&#xff1a;为什么JavaScript可以在浏览器中被执行因为浏览器…...

ElasticSearch 自动补全

1、前言 当用户在搜索框输入字符时&#xff0c;我们应该提示出与该字符有关的搜索项&#xff0c;根据用户输入的字母&#xff0c;提示完整词条的功能&#xff0c;就是自动补全。 2、安装拼音分词器 Github地址&#xff1a;https://github.com/infinilabs/analysis-pinyin 插件…...

整点(枚举)

Hello&#xff01;大家好&#xff01;我是学霸小羊&#xff0c;今天分享一道c枚举题&#xff1a; 题目描述 在二维坐标系, 有一个圆&#xff0c;圆心在(0,0)&#xff0c;圆的半径是r。问圆内有多少个整点(所谓的整点就是横坐标和纵坐标都是整数的点)。若点P的横坐标是整数a&a…...

【WRF安装】WRF编译错误:problems building executables look for error in the build log

WRF编译错误 错误内容&#xff1a;problems building executables, look for error in the build log原因1&#xff1a;gcc版本过低安装高版本gcc 原因2&#xff1a;netcdf版本和配置有误原因3&#xff1a;库冲突原因4&#xff1a;export NETCDF_classic1终极手段&#xff1a;重…...

2024年12月陪玩系统-仿东郊到家约玩系统是一种新兴的线上预约线下社交、陪伴系统分享-优雅草央千澈-附带搭建教程

2024年12月陪玩系统-仿东郊到家约玩系统是一种新兴的线上预约线下社交、陪伴系统分享-优雅草央千澈-附带搭建教程 产品介绍 仿东郊到家约玩系统是一种新兴的线上预约&#xff0c;线下社交、陪伴、助娱、助攻、分享、解答、指导等服务模式&#xff0c;范围涉及电竞、运动、音乐…...

社区版 IDEA 开发webapp 配置tomcat

1.安装tomcat 参考Tomcat配置_tomcat怎么配置成功-CSDN博客 2.构建webapp项目结构 新建一个普通项目 然后添加webapp的目录结构&#xff1a; main目录下新建 webapp 文件夹 webapp文件夹下新建WEB_INF文件夹 *WEB_INF目录下新建web.xml wenapp文件夹下再新建index.html …...

IDEA中解决Edit Configurations中没有tomcat Server选项的问题

今天使用IDEA2024专业版的时候,发现Edit Configurations里面没有tomcat Server,最终找到解决方案。 一、解决办法 1、打开Settings 2、搜索tomcat插件 搜索tomcat插件之后,找到tomcat 发现tomcat插件处于未勾选状态,然后我们将其勾选保存即可。 二、结果展示 最后,再次编…...

【Python】主成分分析PCA - 算法、问题与Python实现

【Python】主成分分析PCA - 算法、问题与Python实现 一、PCA 算法简介&#xff08;一&#xff09;概念及作用&#xff08;二&#xff09;基本原理&#xff08;三&#xff09;算法步骤1.数据预处理2.计算协方差矩阵3.进行特征值分解4.选择主成分5.完成数据降维 二、PCA 常见问题…...

Go怎么做性能优化工具篇之pprof

工欲善其事、必先利其器。这次我们来看看Go的性能优化工具有哪些吧 Go性能优化的工具 一、pprof 工具 pprof 是 Go 语言自带的性能分析工具&#xff0c;可以帮助开发者分析程序的 CPU 使用情况、内存使用情况、goroutine 调度情况等&#xff0c;从而定位性能瓶颈。通过 pprof…...

DataOps驱动数据集成创新:Apache DolphinScheduler SeaTunnel on Amazon Web Services

引言 在数字化转型的浪潮中&#xff0c;数据已成为企业最宝贵的资产之一。DataOps作为一种文化、流程和实践的集合&#xff0c;旨在提高数据管道的质量和效率&#xff0c;从而加速数据从源头到消费的过程。白鲸开源科技&#xff0c;作为DataOps领域的领先开源原生公司&#xf…...

递归读取指定目录下的文件

序言 需要读取sftp服务器上符合指定的文件名正则的文件列表&#xff0c;目前想到的最好的办法就是递归。 我这里引入的依赖是&#xff1a; <!-- jsch-sftp连接 --><dependency><groupId>com.jcraft</groupId><artifactId>jsch</artif…...

代码随想录算法训练营day46|动态规划part12

今天就结束动态规划章节了&#xff0c;以后还要多加练习。 今天的两道题都很有难度&#xff0c;647回文子串的思路非常巧妙&#xff0c;因为用一维dp数组比较难表示子串的起点和终点&#xff0c;所以需要用二维dp数组表示&#xff0c;dp[i][j]表示以i为起点&#xff0c;j为终点…...

ubuntu 24.04.1安装FTP流程

1、安装vsftpd&#xff1a; sudo apt update sudo apt install vsftpd 2、安装后重启查看vsftpd状态 sudo systemctl status vsftpd 输出如下所示&#xff0c;表明vsftpd服务处于活动状态并正在运行&#xff1a; * vsftpd.service - vsftpd FTP server Loaded: loaded (/…...

【Linux】UDP通信

udp使用的是数据报传输。可以一对一&#xff0c;一对多进行传输&#xff0c;用于快速&#xff0c;实时性高的场景 服务器端&#xff1a; 使用步骤&#xff1a; 1.创建socket 2.bind绑定可接收的客户端 3.while{ recv接收数据 send发送数据 } #include <stdio.h> #inclu…...

日期格式、JSR303校验

日期格式 public class Monster() {DateTimeFormat(pattern "yyyy-MM-dd")private Date birthday; } 输入&#xff1a;2024-11-12&#xff0c; 输出&#xff1a;Monster{birthdaySun Nov 12 00:00:00 CST 2024} public class Monster {JsonFormat(pattern &…...