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

网站制作方案怎么做网页设计师必须知道的网站

网站制作方案怎么做,网页设计师必须知道的网站,手机网站建设 如何获得更好的排名,网站栏目词Mysql半同步复制技术在高性能的数据管理中被广泛采用,但它在可靠性方面却存在不足.本文对半同步复制技术进行优化,提出了一种快速全同步复制技术,通过对半同步数据复制过程中的事务流程设置、线程资源合理应用、批量日志应用等技术手段&#…

Mysql半同步复制技术在高性能的数据管理中被广泛采用,但它在可靠性方面却存在不足.本文对半同步复制技术进行优化,提出了一种快速全同步复制技术,通过对半同步数据复制过程中的事务流程设置、线程资源合理应用、批量日志应用等技术手段,在保证数据可靠性的基础上降低复制过程中的性能损失,实现了快速的全同步复制.测试结果表明,快速全同步复制技术可以在性能、可靠性和一致性方面做到很好的均衡,有效提高了Mysql存储集群的业务承载能力.

目录

1 引言

1 快速全同步复制技术原理

1.1 快速全同步复制

1.2 快速全同步复制的特点

1.2.1 线程复用

1.2.2 数据可靠性保证

1.2.3 批量写入


1 引言

数据复制是将主机节点服务器上的数据及其变更应用到一个或多个备机节点服务器里,达到主机节点和备机节点数据相同的目的.复制功能是实现数据库系统高可用性、可扩展性、灾难恢复能力、备份等功能的基础,在分布式数据库多副本读写、读写分离、备份容灾等场景应用非常广泛 . 根据复制技术的发生时机及复制后果,Mysql复制技术可分为异步复制、同步复制、半同步复制三种.

异步复制是Mysql 原生支持的复制技术,主机节点将事务信息写入Binlog文件中时,主机节点会通过 Binlog dump 线程给备机节点发送这些新的Binlog变化,并不等待从库的响应继而提交事务并写入Binlog,所以异步复制不能保证这些事务变化的Binlog数据可靠传输并应用到任何备机节点,从而有数据丢失的可能性.

在 2010 年发布的 Mysql 5.5 版本中,引入了半同步复制,半同步复制解决了异步复制存在的数据可靠性问题,主机节点需要等待至少一个备机节点收到且成功把日志写入Relay log文件,客户端才可收到复制完成的确认消息,从而进入事务的下一个阶段 . 与异步复制相比,半同步复制在提交成功返回时已知数据至少存在于两个位置,从而提高了数据完整性.

但半同步复制依然存在数据丢失的可能性,在半同步复制中,如果出现异常,在没有任何从库反馈确认消息的情况下,会导致事务等待超时,这种情况下主库将退化为异步复制,直到至少有一个半同步从库恢复正常后,主库才恢复半同步复制.为 提 高 数 据 的 可 靠 性 ,在 2016 年 发 布 的Mysql 5.7.17版本中引入了一个全新的技术,称之为InnoDB Group Replication,也就是全同步复制.在全同步复制中,当主库执行完一个事务,必须等所有的从库都执行了该事务才返回给客户端,这样就可以完全保证数据在所有节点都被成功复制.但因需等待所有从库执行完该事务才能返回,全同步复制的主机节点完成一个事务的时间会被拉长,导致性能急剧降低.

1 快速全同步复制技术原理

1.1 快速全同步复制

快速全同步复制是Mysql存储集群主机节点和备机节点通过Binlog进行复制的一种技术,通过数据复制期间线程资源的重复利用及批量确认等优化手段,在保证主机节点变更日志已经传输到备机节点的基础上,快速响应数据库客户的请求和响应 . 快速全同步复制技术的架构如图 1 所示,具体运行步骤如下:

第一步:主机节点(Master)接收到客户程序的提交请求,在完成本地提交后将数据变更日志通过
Binlog Dump 线程发往备机节点(Slave),此时并不给客户程序反馈请求操作成功的消息.

第二步:备机节点接收到 n 个 Binlog 变更日志后,IO 线程将变更日志写入备机节点的 Relay Log完成后,将写入成功的确认消息(ACK)发回到主机节点的ACK 消息队列(ACK Wait Queue)线程池.

第三步:主机节点的Wait线程池收到备机节点的确认消息后,反馈给客户程序,本次请求的处理结束.

1.2 快速全同步复制的特点

Mysql半同步复制5.6版本和5.7版本的基本原理如图2所示.

Mysql5.6 的半同步是after commit机制的复制,用户事务在主机节点完成提交之后,用户线程直到等到备机节点确认消息(ACK)后才反馈给客户程序事务成功 .Mysql5.7 及以后的增强半同步是 aftersync 的复制机制,用户事务在主机节点提交完成之前,用户线程直到等到备机节点确认消息(ACK)后才完成提交并反馈给客户程序事务成功.这两种不同机制的差别导致了主机节点上不同事务间数据一致性的差别,在性能上和可靠性上没有根本的改变.

1.2.1 线程复用

无论是 5.6 版本的半同步复制还是 5.7 版本及以后的增强半同步复制,在用户会话等待备机节点确认消息(Wait ACK)期间,用户会话始终占用一个线程,直到该事务完成才退出 . 在一个负载高的系统,大量用户会话在等待 ACK 期间将占用大量的线程资源而影响性能.

而快速全同步复制利用了线程池技术,每个事务 Commit(包括 DDL、AUTOCOMMIT STMT、COMMIT、XA PREPARE、XA COMMIT 等)在完成所有提交过程后,将 Wait ACK 数据包发送到客户端之前等待备机节点确认 . 在等待完整 WaitACK时,由于使用了线程池,事务或其会话不占用任何操作系统线程,数据库的工作线程将继续处理来自其他连接的其他请求,这种机制避免了资源浪费,从而使性能明显得到提升.

1.2.2 数据可靠性保证

在半同步复制中,如果数据复制发生异常(备机节点不可以用或者数据复制所用的网络发生异常)的情况下,主机节点会暂停(Mysql 默认 10 s 左右)对应用的响应,复制方式将降为异步复制.直到数据复制恢复正常,将恢复为半同步复制 . 当复制方式降为异步复制时,数据可靠性就无法保障,这在某些业务场景是不允许的.而快速全同步复制,在默认情况下是不可以降级为异步复制的(只在特殊情况下方可通过参数配置支持降级),从而保证数据在任何情况下都不会丢失 . 下面从两个不同场景进行分析,当出现异常的情况时,快速全同步复制如何处理这种异常.

1.2.3 批量写入

快速全同步复制在性能上的优化还包括批量Relay Log 写入和组提交.批量Relay Log写入是指备机节点可以根据参数配置,在接收到一定数量的Binlog 之后才写入 Relay Log,然后将 ACK 消息批量反馈到主机节点的应用程序.这在一定程度上提高了备机节点的写入效率,并使复制性能得到明显提升.

http://www.yayakq.cn/news/643875/

相关文章:

  • 网站设计外文文献广州网站营销推广
  • 重庆做木门网站公司北京市门户网站
  • 国外怎么做推广网站可以看小视频的浏览器
  • 网站建设案例怎么样理县网站建设公司
  • 重庆网站建设莉北京网站设计公司sx成都柚米科技15
  • 妇幼网站建设pptghost 卸载wordpress
  • 网站开发组岗位电子商务网站建设的代码
  • 思茅北京网站建设wordpress输出文章标签名
  • 网站建设业务提成网页软件下载
  • 东莞服务公司网站建设关于做电商网站导流项目
  • 深圳网站程序开发制作网站关键词优化的价格
  • 电子商务网站开发人员要求wordpress数据列表模板
  • 贺州网站制作阿里云服务器做网站django
  • 网络建站工作室沈阳男科医院哪家医院好
  • 做网站引用没有版权的歌曲交换友情链接的渠道有哪些
  • 乐山网站开发杭州网站建设ttmwl
  • 江苏省建设厅副厅长网站贵州城乡建设官方网站
  • 印度人通过什么网站做国际贸易网站优化的作业及意义
  • 中学网站系统源码网站设计风格及特点
  • 一站式营销型网站建设响应式网站建设的优势
  • 网站程序购买梵克雅宝
  • 南山的网站建设公司wordpress浏览器跳转
  • 优惠券网站cms建设企业注册名称查询
  • 做音乐网站的目的和意义做泥水上哪个网站找事做
  • 高青网站建设网页设计定制代理
  • 2021年有没有人给个网站做同城网站需要哪些手续
  • 网站运营推广选择乐云seo七牛 wordpress
  • 网站建设运营预算明细知名企业营销案例100例
  • mysol做的选课网站华为荣耀手机最新款
  • 网站的网站建设公司揭阳网站制作计划