首页 文章 精选 留言 我的

精选列表

搜索[协同工作],共10000篇文章
优秀的个人博客,低调大师

MySQL主从复制的 工作原理

mysql 主从复制原理 主从形式 mysql主从复制 灵活 一主一从 主主复制 一主多从---扩展系统读取的性能,因为读是在从库读取的; 多主一从---5.7开始支持 联级复制--- 用途及条件 mysql主从复制用途 实时灾备,用于故障切换 读写分离,提供查询服务 备份,避免影响业务 主从部署必要条件: 主库开启binlog日志(设置log-bin参数) 主从server-id不同 从库服务器能连通主库 主从原理 mysql主从复制原理 从库生成两个线程,一个I/O线程,一个SQL线程; i/o线程去请求主库 的binlog,并将得到的binlog日志写到relay log(中继日志) 文件中; 主库会生成一个 log dump 线程,用来给从库 i/o线程传binlog; SQL 线程,会读取relay log文件中的日志,并解析成具体操作,来实现主从的操作一致,而最终数据一致; 问题及解决方法 mysql主从复制存在的问题: 主库宕机后,数据可能丢失 从库只有一个sql Thread,主库写压力大,复制很可能延时 解决方法: 半同步复制---解决数据丢失的问题 并行复制----解决从库复制延迟的问题 半同步复制 mysql semi-sync(半同步复制) 半同步复制: 5.5集成到mysql,以插件的形式存在,需要单独安装 确保事务提交后binlog至少传输到一个从库 不保证从库应用完这个事务的binlog 性能有一定的降低,响应时间会更长 网络异常或从库宕机,卡主主库,直到超时或从库恢复 主从复制--异步复制原理 半同步复制原理: 并行复制 mysql并行复制 社区版5.6中新增 并行是指从库多线程apply binlog 库级别并行应用binlog,同一个库数据更改还是串行的(5.7版并行复制基于事务组) 设置 setglobalslave_parallel_workers=10; 设置sql线程数为10 其他 部分数据复制 主库添加参数: binlog_do_db=db1 binlog_ignore_db=db1 binlog_ignore_db=db2 或从库添加参数 replicate_do_db=db1 replicate_ignore_db=db1 replicate_do_table=db1.t1 replicate_wild_do_table=db%.%replicate_wild_ignore_table=db1.% 联级复制(常用) A->B->C B中添加参数: log_slave_updates B将把A的binlog记录到自己的binlog日志中 复制的监控: showslavestatus\G 复制出错处理 常见:1062(主键冲突),1032(记录不存在) 解决: 手动处理 跳过复制错误:set global sql_slave_skip_counter=1 总结 主从形式 一主一从 一主多从--扩展系统读取性能 多主一从--5.7开始支持 主主复制 联级复制 用途:实时灾备的故障切换,读写分离,备份 原理 i/o线程接受读取binlog,并写入relay log文件 sql线程从relay log 文件中读取binlog并持久化 主:log dump线程传binlog; 从 问题及解决 并行复制 半同步复制 主库宕机后,数据丢失 主库写压力大,因从库只有一个sql 线程来持久化,复制可能延迟 半同步复制: 事务在主库写完binlog后需要从库返回一个已接受,才放回给客户端; 原理 5.5集成到mysql,以插件的形式存在,需要单独安装 确保事务提交后binlog至少传输到一个从库 不保证从库应用完成这个事务的binlog 性能有一定的降低 网络异常或从库宕机,卡主库,直到超时或从库恢复 并行复制 原理:从库多线程apply binlog 在社区5.6中新增 库级别并行应用binlog,同一个库数据更改还是串行的 5.7版本并行复制基于事务组 部分数据复制 联级复制(常用) A->B->C B中添加参数log_slave_updates B将把A的binlog记录到自己的binlog日志中 复制的监控 show slave status 复制出错处理 手动处理 跳过复制错误:set global sql_slave_skip_counter=1 常见:1062(主键冲突),1032(记录不存在) 解决: mysql主从复制是mysql高可用性,高性能(负载均衡)的基础 简单,灵活,部署方式多样,可以根据不同业务场景部署不同复制结构 复制过程中应该时刻监控复制状态,复制出错或延时可能给系统造成影响 mysql主从复制目前也存在一些问题,可以根据需要部署复制增强功能

优秀的个人博客,低调大师

Hadoop YARN 的工作流程简述

1、Client 向 YARN 提交应用程序,其中包括 ApplicationMaster 程序及启动 ApplicationMaster 命令2、ResourceManager 为该 ApplicationMaster 分配第一个 Container,并与对应的 NodeManager 通信,要求它在这个 Container 中启动应用程序的 ApplicationMaster3、ApplicationMaster 向ResourceManager 注册4、ApplicationMaster 为 Application 的任务申请并领取资源5、获取到资源后,要求对应的 NodeManager 在 Container 中启动任务6、NodeManager 收到 ApplicationMaster 的请求后,为任务设置好运行环境(包括环境变量、JAR 包等),将任务启动脚本写到一个脚本中,并通过运行该脚本启动任务7、各个任务通过 RPC 协议向 ApplicationMaster 汇报自己的状态和进度,以让 ApplicationMaster 随时掌握各个任务的运行状态,从而可以在失败时重启任务8、应用程序完成后,ApplicationMaster 向 ResourceManager 注销并关闭自己实际中,集群可能并没有那么多资源来满足 ApplicationMaster 的资源请求,这是 ApplicationMaster 会采用轮循的方式不断申请资源,直到申请到资源或 Application 结束

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册