1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > nginx+mycat实现负载均衡 数据库的主从复制 读写分离

nginx+mycat实现负载均衡 数据库的主从复制 读写分离

时间:2022-12-10 00:22:18

相关推荐

nginx+mycat实现负载均衡 数据库的主从复制 读写分离

材料:XManager;七台CentOS(Linux)系统虚拟机(一台安装nginx,两台安装Tomcat+JDK,一台安装mycat,三台安装mysql数据库:一台master主节点,两台slave从节点)

一、安装JDK

1、将JDK安装包使用xftp上传到虚拟机/opt文件夹下解压

1.1上传安装包

1.2查看安装包

1.3解压

2、配置JDK的配置环境

2.1进入/etc/profile进行编辑

vi /etc/profile

2.2来到profile文件末尾,进入编辑模式,配置环境变量

#JAVA_HOMEexport JAVA_HOME=/opt/jdk1.8#PATHexport PATH=$PATH:$JAVA_HOME/bin

List item

2.3保存退出

3、使配置生效

source /etc/profile

4、测试是否安装成功

使用 java 、java --version命令进行测试

二、安装Tomcat

1、上传解压打开tomcat

1.1上传、解压步骤与安装JDK相同

1.2开启tomcat:进入tomcat目录下的bin目录执行startup.sh文件

./startup.sh

三、nginx的安装

1、centos系统中默认的yum仓库中没有nginx的安装包,所以要想安装nginx需要单独指定他的仓库地址

1.1 将nginx.repo上传到linux服务器下的/etc/yum.repos.d/下

nginx.repo文件说明:

name=# 一个描述,随意;

baseurl=# 设置资源仓库的地址;

gpkcheck=0 表示对从这个源下载的rpm包不进行校验;

enable=1表示启用这个源

```bash

[nginx]name=nginx repo baseurl=/packages/centos/7/x86_64/gpgcheck=0enable=1```

2、安装nginx

yum install nginx

3、启动nginx

systemctl start nginx

3.1查看nginx状态

systemctl status nginx

显示这样的状态就是开启成功

四、使用nginx实现负载均衡

1、这里使用三台虚拟机,一台安装nginx,两台安装tomcat+jdk

1.1 使用dhclient命令为三台机器分配ip地址,以备后续使用

我这里三台计算机的ip为

192.168.10.131(安装nginx)

192.168.10.129

192.168.10.130

1.2 使用systemctl stop firewalld 关闭防火墙

2、配置负载均衡

2.1 打开/etc/nginx/conf.d/文件

#新增upstream aa{server 192.168.10.129:8080;server 192.168.10.130:8080;}server{#在location/{}中添加 (注:下边的aa与upstream aa中的aa相统一)proxy_pass http://aa}

3、重启nginx服务

systemctl restart nginx

4、关闭linux安全

vi /etc/selinux/config

注意:linux系统关闭安全组之后,必须重启服务器 使用reboot命令

5、测试

输入http:192.168.10.131:80 访问nginx 实际访问的是tomcat

6、nginx的负载均衡策略

6.1 轮询(默认)

6.2 权重

weight=数值 ,数字越大,权重越高,权重越高访问次数越高

upstream aa{server ip:8080 weight=2;server ip:8080 weight=1;}

6.3 ip黏着

特点:根据用户的ip固定的访问某台tomcat

upstream aa{#新增ip_hash; server ip:8080;server ip:8080 ;}

五、安装mysql

1、安装方式1

1.1将mysql的rpm安装包上传到/opt下

1.2安装vim

yum install vim

1.3卸载mariabd数据库

rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

解释:centos7自带的mariabd数据库和我们要安装的mysql有冲突

1.4 进入/opt/mysql_rpm文件夹,使用rpm命令安装

rpm -ivh perl-*rpm -ivh net-tools-2.0-0.22.1004git.el7.x86_64.rpmrpm -ivh mysql-community-*

1.5 启动mysql数据库

systemctl start mysqld

1.6 登录mysql数据库

mysql -uroot -p 默认没有密码

1.7 修改密码,允许远程访问

1. use mysql 2. select host,user,password from user3. update user set password=password('123456') where user='root';4. update user set host='%' where host='127.0.0.1';

1.8 执行 flush privileges 否则需要重启mysql数据库才能生效

2、安装方式2

参照本人另一篇博客【使用wget安装mysql】

六、mysql主从分离

准备工作:准备三台安装了mysql数据库的服务器

确保服务器的防火墙都关闭了

1、操作主机

1.1 修改/etc/f文件

server-id=1log_binbinlog-do-db=baizhi(要同步的数据库)binlog-ignore-db=mysql(忽略同步的数据库)

1.2 重启mysql数据库

systemctl restart mysqld

1.3 登录mysql数据库

mysql -uroot -p123456

1.4 show master status ;

解释:file—> 日志文件

position(位置) —> 日志文件目前的位置

主从复制的原理:通过日志文件以及日志的位置,告诉从机应该从哪文件的哪个位置开始备份,

只要操作主机的数据库,从机就应该从120这个位置以后的操作进行备份(同步)操作

2、修改从节点

说明:如果是克隆的虚拟机需要先删除从机上的 /var/lib/mysql/f文件

2.1 修改 /etc/f

server-id=133()

2.2 重启从机上mysql数据库

systemctl restart mysqld

2.3 登录从机mysql数据库

2.4 设置从节点的状态

stop slave;

2.4.1告诉当前从机应该去哪找主节点,然登录主节点获取日志文件,从哪个位置开始备份

change master to master_host='主机的ip',master_user='主机用户名',master_password='主机的密码',master_log_file=’xx’,master_log_pos=xx;start salve;

2.5查看从节点的状态 (两个都为yes即设置成功)

show slave status\G

七、使用mycat实现读写分离

准备工作:创建一台虚拟机安装mycat(安装有JDK)

确保关闭防火墙

1、mycat安装

1.1 上传mycat安装包 /opt下

1.2 解压安装

1.3 配置环境变量

vi /etc/profile

#JAVA_HOMEexport JAVA_HOME=/opt/jdk1.8#MYCAT_HOMEexport MYCAT_HOME=/opt/mycat#PATHexport PATH=$PATH:$JAVA_HOME/bin:$MYCAT_HOME/bin

1.4 source profile

1.5 修改/confg目录下的server.xml和schema.xml配置文件

1.5.1 修改server.xml

1.5.2 修改schema.xml

1.6 启动mycat

mycat

1.7 连接测试

八、通过nginx、mycat实现负载均衡以及对数据库的读写分离

注意项目中数据库连接的url需要修改为安装mycat的机器的ip地址,数据库名为schema.xml配置文件中的数据库名

jdbc.driverClass=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://192.168.10.134:8066/TESTDB?useUnicode=true&characterEncoding=utf8jdbc.user=rootjdbc.password=123456

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。