mysql读写分离怎么实现(数据库读写分离实现)

为什么要实现mysql读写分离大型网站为了解决大量的并发访问,除了在网站实现分布式负载均衡,远远不够。到了数据业务层、数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器来处理如此多的数据库连接操作,数据库必然会崩溃,特别是数据丢失的话,后果更是不堪设想。这时候,我们会考虑如何减少数据库的连接,下面就进入我们今天的主题。​利用主从数据库来实现读写分离,从而分担主数据库的压力。在多个服…

大家好,又见面了,我是你们的朋友全栈君。

一、为什么要实现mysql读写分离

大型网站为了解决大量的并发访问,除了在网站实现分布式负载均衡,远远不够。到了数据业务层、数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器来处理如此多的数据库连接操作,数据库必然会崩溃,特别是数据丢失的话,后果更是不堪设想。这时候,我们会考虑如何减少数据库的连接,下面就进入我们今天的主题。

​ 利用主从数据库来实现读写分离,从而分担主数据库的压力。在多个服务器上部署mysql,将其中一台认为主数据库,而其他为从数据库,实现主从同步。其中主数据库负责主动写的操作,而从数据库则只负责主动读的操作(slave从数据库仍然会被动的进行写操作,为了保持数据一致性),这样就可以很大程度上的避免数据丢失的问题,同时也可减少数据库的连接,减轻主数据库的负载。

在这里插入图片描述

二、mysql读写分离

mysql读写分离概述

1、mysql本身不能实现读写分离的功能,需要借助中间件实现,例如:Amoeba,Mysql Proxy,Atlas。今天主要介绍Amoeba实现mysql读写分离。

​2、 Amoeba(变形虫)项目,该开源框架于2008发布一款Amoeba for mysql软件,该软件致力于mysql的分布式数据库前端代理层,**主要的作用是应用服务访问mysql服务器时充当SQL路由功能,并具有负载均衡、高可用性、SQL过滤、读写分离、可路由相关SQL的到目标数据库、可并发请求多台数据库全并结果的作用。**通过Amoeba能够完成多数据源的高可用、负载均衡、数据切片的功能。

目前Amoeba已在很多企业的生产线上面使用;其版本可在官网进行下载。其工作原理图如下:

在这里插入图片描述

三、mysql读写分离原理

读写分离就是利用mysql的主从复制完成的,本质就是在主服务器上修改,数据会同步到从服务器,从服务器只能提供读取数据,不能写入,实现备份的同时也实现了数据库性能的优化,以及提升了服务器安全。

四、mysql读写分离配置

本次mysql读写分离使用Amoeba实现,以下为实验过程。

五、mysql读写分离部署配置

主机名               IP           系统
amoeba           10.0.0.41     centos7.3
Mysql-Master     10.0.0.42     centos7.3
Mysql-Slave      10.0.0.43     centos7.3

注:mysql版本和安装方式无要求,实现主从即可。

六、先在amoeba服务器上操作

1、配置jdk环境
cd /usr/local/src/
yum -y install lrzsz    
rz
#增添执行权限
chmod +x jdk-6u14-linux-x64.bin 
#执行安装一路空格,yes安装即可.
./jdk-6u14-linux-x64.bin 
mv jdk1.6.0_14 /usr/local/jdk1.6

在这里插入图片描述

七、配置全局环境变量

vim /etc/profile
#添加如下二行到全局环境变量
export JAVA_HOME=/usr/local/jdk1.6
export PATH=$PATH:$JAVA_HOME/bin
#使环境变量生效
source /etc/profile
#查看java的版本
java -version
#创建一个amoeba目录
mkdir /usr/local/amoeba
#指定路径解压ameoba包
tar zxf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba/
#进入amoeba配置文件
cd /usr/local/amoeba/
cd conf/

在这里插入图片描述

八、Amoeba配置文件位于/usr/local/amoeba/conf目录下,配置读写分离我们只需关注dbServers.xml和amoeba.xml,首先我们先对dbServers.xml 文件进行配置更改操作

vim /usr/local/amoeba/conf/dbServers.xml 

在这里插入图片描述

在这里插入图片描述

九、之后再去MysqL-Master服务器上授权账号,设置amoeba连接后端数据库服务器的账号

grant all on *.* he@'%' identified by '123';
flush privileges;

十、然后再回到amoeba服务器上再去更改另一个配置文件amoeba.xml

 vim /usr/local/amoeba/conf/amoeba.xml 

在这里插入图片描述

在这里插入图片描述

 cd ..
 cd bin/
 #前台启动amoeba服务,之后再开一个窗口进行操作
 ./amoeba start
 #或者执行这个
 /usr/local/amoeba/bin/amoeba start
 mysql -uroot -p123 -h10.0.0.41 -P8066

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

十一、测试读写分离是否成功,读和写是否分开

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

至此,MysqL读写分离功能成功部署。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/126314.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 初识VMM_vmem是什么意思

    初识VMM_vmem是什么意思三篇文章就VMM、虚拟机和容器的性能比较作了详细介绍对以下问题予以解决:如何虚拟化操作系统下的机器大多数现代CPU架构的设计都不是可虚拟化的如何在无法虚拟化的cpu上实现VMM。虚拟化让一台机器上可以运行多种操作系统类型和版本,文章通过讨论Disco的基本技术,了解虚拟化工作机制。要在虚拟机监视器上运行虚拟机所使用的基本技术是有限的直接执行,也就是操作系统如何虚拟化CPU…

    2022年9月22日
    2
  • Pytest(1)安装与入门「建议收藏」

    Pytest(1)安装与入门「建议收藏」pytest介绍pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高。根据pytest的官方网站介绍,它

    2022年7月31日
    5
  • SCI论文投稿信(Cover Letter)的写法及模版

    SCI论文投稿信(Cover Letter)的写法及模版一、写法投稿信(CoverLetter)应该简述所投稿件的核心内容、主要发现和意义,拟投期刊,对稿件处理有无特殊要求等(如“nottoreview”list)。另外,请附上主要作者的中文姓名、通讯地址、电话、传真和e-mail地址。此外有的杂志要求推荐几位审稿人及其联系方式。以及谁已经阅读过该文(当然是牛人)。一般来说,杂志通常要求说明你论文研究的意义,以及与这个杂志的相关性,另外还有…

    2022年5月8日
    128
  • 原生微信小程序轮播图点击放大

    原生微信小程序轮播图点击放大<swiperclass=”index-adcs-sqiper”indicator-dots=”{{indicatorDots}}”interval=”{{interval}}”duration=”{{duration}}”circular=”{{circular}}”style…

    2022年5月11日
    35
  • java decimal保留两位小数_bigdecimal两位小数

    java decimal保留两位小数_bigdecimal两位小数那么,如何学习Kafka源码??我觉得最高效的方式就是去读最核心的源码,先看一张 Kafka结构图 以及 Kafka源码全景图梳理一下关于 Kafka框架,找到学习的重点。其次,我要说的就是一个Kafka源码解析的文档——《Kafka源码解析与实战》前5章分别是:Kafka简介、Kafka的架构、Broker概述、Broker的基本模块、Broker的控制管理模块**第1章Kafka简介:**介绍Kafka诞生的背景、Kafka在Linked

    2022年9月23日
    3
  • google app(appstore安卓版下载)

    MiXCodecsapp是一款mix插件包,MiXCodecsapp整个在线的操作非常的简单,是没有任何的广告和收费问题的,MiXCodecsapp适合的类型比较多。软件介绍MiXCodecsapp是一个平滑的、功能齐全的文件管理应用程序MiXplorer文件管理器的插件工具,MiXCodecsapp让你有具有漂亮的界面,它支持批量移动和复制,以及各种分类,水平模式下无限制的标…

    2022年4月12日
    47

发表回复

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

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