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

网站建设经费保障qq空间实名认证网站

网站建设经费保障,qq空间实名认证网站,档案网站建设,动漫设计与制作主要学什么文章目录 读写分离概念读写分离的动机读写分离的适用场景主从复制与读写分离MySQL 读写分离原理MySQL读写分离的实现方式代表性程序 MySQL读写分离实验搭建 MySQL 读写分离Amoeba 服务器配置测试读写分离 问答 读写分离 概念 读写分离是为了优化数据库性能#xff0c;通过将… 文章目录 读写分离概念读写分离的动机读写分离的适用场景主从复制与读写分离MySQL 读写分离原理MySQL读写分离的实现方式代表性程序 MySQL读写分离实验搭建 MySQL 读写分离Amoeba 服务器配置测试读写分离 问答 读写分离 概念 读写分离是为了优化数据库性能通过将写操作INSERT、UPDATE、DELETE和读操作SELECT分别分配到不同的数据库实例上以达到降低单一数据库负载、提高整体响应速度的目的。这通常通过数据库的主从复制技术来实现主数据库负责处理写操作从数据库负责处理读操作并保持与主数据库的数据同步。 读写分离的动机 性能优化写操作通常比读操作更耗时因此将两者分开可以显著提高数据库系统的整体性能。负载均衡通过读写分离可以将查询请求分散到多个从数据库上减轻主数据库的负担。高可用性在读写分离架构中如果主数据库出现故障从数据库可以迅速接管读操作确保系统的持续运行。 读写分离的适用场景 读写分离通常适用于以下场景 读多写少如果系统的查询操作远多于更新操作那么读写分离可以显著提高性能。高并发在高并发场景下读写分离可以有效分散数据库请求提高系统的处理能力。数据一致性要求不高的读操作对于某些读操作即使数据略有延迟也是可以接受的这样可以使用读写分离来提高性能。 主从复制与读写分离 必要性在生产环境中单一数据库服务器无法满足高并发、高可用性和安全性需求。实现方式通过主从复制同步数据再通过读写分离提升数据库的并发处理能力。类似于rsync但rsync是对磁盘文件备份而MySQL主从复制是对数据和语句的备份。 MySQL 读写分离原理 核心思想只在主服务器上执行写操作在从服务器上执行读操作。实现方式主数据库处理事务性操作从数据库处理SELECT查询。通过数据库复制技术将主数据库上的变更同步到从数据库。 MySQL读写分离的实现方式 基于程序代码内部实现 优点性能较好不需要额外的硬件设备。缺点需要开发人员实现运维人员难以介入对于大型复杂应用代码改动可能较大。 基于中间代理层实现 优点易于运维和管理可以实现更复杂的路由规则和负载均衡策略。缺点可能增加系统的复杂性和延迟需要额外的硬件设备或软件资源。 常见的中间代理层实现方式包括MySQL-Proxy、Atlas、Amoeba和Mycat等。这些工具各有优缺点选择时应根据具体的应用场景和需求进行权衡。 代表性程序 MySQL-Proxy 开源项目通过自带Lua脚本进行SQL判断。需要编写大量Lua脚本对不熟悉MySQL Proxy内置变量和MySQL Protocol的人来说较困难。 Atlas 由奇虎360开发维护基于MySQL协议的数据中间层项目。在mysql-proxy 0.8.2基础上优化支持事务和存储过程。每天承载数十亿条读写请求。 Amoeba 由陈思儒开发曾就职于阿里巴巴。使用Java开发易于使用且可移植性强。不支持事务和存储过程。 Mycat 基于Java编写的数据库中间件实现MySQL协议。核心功能是分库分表配合主从模式可实现读写分离。 MySQL读写分离实验 搭建 MySQL 读写分离 Amoeba 服务器配置 1. 安装 Java 环境 因为 Amoeba 是基于 JDK 1.5 开发的所以推荐使用 JDK 1.5 或 1.6 版本。 # 进入 /opt/ 目录 cd /opt/# 将 JDK 安装包复制到 /usr/local/ 目录 cp jdk-6u14-linux-x64.bin /usr/local/# 进入 /usr/local/ 目录 cd /usr/local/# 给 JDK 安装包执行权限 chmod x jdk-6u14-linux-x64.bin# 执行 JDK 安装包 ./jdk-6u14-linux-x64.bin # 按 yes 确认按 enter 继续# 将解压后的 JDK 目录重命名为 jdk1.6 mv jdk1.6.0_14/ /usr/local/jdk1.6# 编辑 /etc/profile 文件配置 JAVA_HOME 环境变量 vim /etc/profile # 在文件末尾添加以下内容 export JAVA_HOME/usr/local/jdk1.6 export CLASSPATH.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH export AMOEBA_HOME/usr/local/amoeba export PATH$PATH:$AMOEBA_HOME/bin# 使配置生效 source /etc/profile# 检查 Java 版本 java -version2. 安装 Amoeba 软件 # 创建 Amoeba 安装目录 mkdir /usr/local/amoeba# 将 Amoeba 安装包解压到 /usr/local/amoeba/ 目录 tar zxvf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba/# 设置 Amoeba 目录权限 chmod -R 755 /usr/local/amoeba/# 检查 Amoeba 是否安装成功 /usr/local/amoeba/bin/amoeba # 如显示 amoeba start|stop 说明安装成功3. 配置 Amoeba 读写分离 首先在 Master、Slave1、Slave2 的 MySQL 上开放权限给 Amoeba 访问。 GRANT ALL ON *.* TO test192.168.80.% IDENTIFIED BY 123.com;然后回到 Amoeba 服务器配置 Amoeba 服务。 # 进入 Amoeba 配置文件目录 cd /usr/local/amoeba/conf/# 备份 Amoeba 配置文件 cp amoeba.xml amoeba.xml.bak# 编辑 Amoeba 配置文件 vim amoeba.xml # 修改以下内容 # 第30行设置 Amoeba 用户名为 amoeba property nameuseramoeba/property # 第32行设置 Amoeba 用户密码为 123456 property namepassword123456/property # 第115行设置默认连接池为 master property namedefaultPoolmaster/property # 第117行去掉注释设置写连接池为 master property namewritePoolmaster/property # 第118行去掉注释设置读连接池为 slaves property namereadPoolslaves/property# 备份数据库配置文件 cp dbServers.xml dbServers.xml.bak# 编辑数据库配置文件 vim dbServers.xml # 修改以下内容 # 第23行注释掉默认库配置以防 MySQL 中没有 test 库时报错 !-- property nameschematest/property -- # 第26行设置连接 MySQL 的用户名为 test property nameusertest/property # 第28-30行去掉注释设置连接 MySQL 的用户密码为 123.com property namepassword123.com/property # 第45行设置主服务器名为 master dbServer namemaster parentabstractServer # 第48行设置主服务器 IP 地址为 192.168.80.10 property nameipAddress192.168.80.10/property # 第52行设置从服务器名为 slave1 dbServer nameslave1 parentabstractServer # 第55行设置从服务器1的 IP 地址为 192.168.80.11 property nameipAddress192.168.80.11/property # 第58行复制上面6行设置从服务器2的名称为 slave2 和 IP 地址为 192.168.80.12 dbServer nameslave2 parentabstractServer property nameipAddress192.168.80.12/property # 第65行设置虚拟从服务器名为 slaves dbServer nameslaves virtualtrue # 第71行设置虚拟从服务器的连接池为 slave1 和 slave2 property namepoolNamesslave1,slave2/property# 启动 Amoeba 服务 /usr/local/amoeba/bin/amoeba start # 检查 8066 端口是否开启默认端口为 TCP 8066 netstat -anpt | grep java测试读写分离 1. 安装 MariaDB # 安装 MariaDB yum install -y mariadb-server mariadb# 启动 MariaDB 服务 systemctl start mariadb.service2. 测试读写分离 在客户端服务器上测试连接 Amoeba 服务器代理的 MySQL。 # 通过 Amoeba 服务器代理访问 MySQL mysql -u amoeba -p123456 -h 192.168.80.20 -P8066# 在主服务器上创建数据库和表 USE db_test; CREATE TABLE test (id INT(10), name VARCHAR(10), address VARCHAR(20));# 在两台从服务器上关闭同步并插入数据 STOP SLAVE; USE db_test; -- 在 slave1 上插入数据 INSERT INTO test VALUES(1, zhangsan, this_is_slave1); -- 在 slave2 上插入数据 INSERT INTO test VALUES(2, lisi, this_is_slave2);# 在主服务器上插入数据 INSERT INTO test VALUES(3, wangwu, this_is_master);# 在客户端服务器上查询数据 USE db_test; SELECT * FROM test; # 客户端会分别向 slave1 和 slave2 读取数据显示只有在两个从服务器上添加的数据没有在主服务器上添加的数据# 在客户端服务器上插入数据 INSERT INTO test VALUES(4, qianqi, this_is_client); # 只有主服务器上有此数据# 在两个从服务器上执行 START SLAVE; 实现同步在主服务器上添加的数据 START SLAVE;问答 读写分离 1基于程序代码内部实现优点性能好不需要额外的硬件设备支出缺点由开发人员负责实现和维护在一些现有的大型应用中现实读写分离对代码改动会较为困难 2基于中间代理层实现优点实现起来较为简单不需要重构代码缺点需要额外的硬件设置支出由运维人员负责维护 典型代表mysql-proxy、mycat、ameoba
http://www.hkea.cn/news/14278517/

相关文章:

  • 建基建设集团网站移动端公众号网站开发
  • 网站规划方案模板网站推广宣传方案
  • 成都网站游戏设计wordpress+编辑器字号
  • 网站权重难做17网一起做网店潮汕池尾
  • 做淘宝网站用什么软件四川省建设招标网站首页
  • 网站数据库是干什么的企业门户网站的作用
  • 企业网站建设可行性分析 技能训练网络营销八大目标是什么
  • 手机网站 动态 页面 好 静态页面好培训课程开发
  • 网站管理的含义一个人在线观看的视频全免费
  • 泉州晋江网站建设费用网站开发制作平台
  • 南京设计网站可以做电商题目的网站
  • 海口市做网站的公司上海网站建设怎么弄
  • 现在的网站开发框架百度关键词优化首选667seo
  • 做网站策划师的图片深入浅出wordpress 中文 pdf
  • 服装网站建设论文自己可以做开奖网站吗
  • 青岛网站建设有限公司wordpress菜单高度
  • 网站建设规划书范文5000字阿里云服务器ip做网站
  • 在阿里云服务器做淘客网站企查查怎么精准找客户
  • ui的设计网站多媒体教学网站开发的一般步骤
  • 做网站组服务器查icp备案是什么网站
  • 自己网站建设丰台网站建设
  • 潍坊网站建设报价任丘建设网站制作
  • 摄影网站开发背景班级网站模板素材
  • 网站后台管理 ftp网站 建设方案
  • 烟台住房和城乡建设局网站创建wordpress博客
  • 营销网站定制一条龙网站建设哪家好
  • 网站竞价推广做响应式网站的物流
  • 网站首页布局风格wordpress支付宝红包
  • 桂城网站建设制作wordpress当前网址参数
  • 无锡做网站无锡网站设计怎样学网络推广