亿级并发|day07-集群部署及数据库高可用实现

1 Linux集群部署

1.1 连接数据库

1.1.1 修改JDBC ip地址

在这里插入图片描述

1.1.2 修改db.property

在这里插入图片描述

1.1.3 Tomcat部署示意图

在这里插入图片描述

1.2 部署单台Tomcat

1.2.1 上传tomcat安装包

在这里插入图片描述

1.解压安装文件

tar -xvf apache-tomcat-7.0.55.tar.gz

2.修改tomcat文件名称

mv apache-tomcat-7.0.55 tomcat-8091

3.移除安装包

rm apache-tomcat-7.0.55.tar.gz

最终tomcats目录结构如下:
在这里插入图片描述

1.2.2 修改配置文件

1.报错解决方案
在这里插入图片描述

2.修改端口
在这里插入图片描述

1.2.3 启动tomcat

使用命令

sh startup.sh

或者命令

./startup.sh

启动tomcat

在这里插入图片描述

1.2.4 关闭防火墙

[root@localhost bin]# service iptables stop
iptables: Setting chains to policy ACCEPT: filter  [  OK  ]
iptables: Flushing firewall rules:                 [  OK  ]
iptables: Unloading modules:                       [  OK  ]

1.2.5 部署war包

将webapps中的ROOT文件夹先删除,之后部署war包
在这里插入图片描述

启动tomcat

./startup.sh

切换到conf目录,然后检查日志文件

cat catalina.out

在这里插入图片描述

1.2.6 开放mysql权限

要求:mysql权限命令的执行,需要在mysql客户端中运行。
语法:

grant [权限] on [数据库名].[表名] to ['用户名']@['web服务器的ip地址'] identified by ['密码'];
这里我们使用
grant all on *.* to 'root'@'%' identified by 'root';

或者指定IP地址

grant all on *.* to 'root'@'192.168.1.103' identified by 'root';

1.2.7 单台tomcat测试

在这里插入图片描述

1.2.8 复制多台tomcat

cp -r tomcat-8091 tomcat-8092
cp -r tomcat-8091 tomcat-8093

在这里插入图片描述

说明:分别修改8005/8080/8009端口启动多台tomcat,之后启动测试。

1.2.9 Nginx实现Linux集群访问

#Linux中集群部署
upstream jtLinux {
	server 192.168.126.161:8091;
	server 192.168.126.161:8092;
	server 192.168.126.161:8093;
}

#后台管理系统
server {
	listen		80;
	server_name  manage.jt.com;

	location / {
		proxy_pass http://jtLinux;
		#proxy_connect_timeout       3;  
		#proxy_read_timeout          3;  
		#proxy_send_timeout          3; 
	}
}

2 数据库高可用

2.1 数据库备份

2.1.1 冷备份

定期进行数据库导出。工具sqlYog

缺点:
-不能保证数据的完整性。
-如果数据库中文件较大,则导出的.sql文件体积很大

补充: 数据库冷备份是恢复数据的最后有效手段。

2.1.2 热备份

在这里插入图片描述

主库:主要负责写入二进制日志文件
从库:主要负责监听主库中数据的修改,并同步到从库中。

调用过程:

  1. 当主库中数据发生变化时,会将更新的操作写入到二进制日志文件中。
  2. 从库通过IO线程实时监听主库中的二进制日志文件,当文件发生变化时,读取变化的日志内容写入中继日志中。
  3. 从库通过sql线程读取中继日志中的消息,最终将数据同步到从库中。

2.1.3 克隆2台虚拟机

克隆2台全新的数据库 mysql-master/mysql-slave,之后将IP设置为固定IP。

2.1.4 安装mysql数据库

1.上传mysql安装文件
在/usr/local/src/中新建mysql文件夹,之后上传数据库安装文件。
在这里插入图片描述

2.解压文件
执行解压命令

tar -xvf Percona-Server-5.6.24-72.2-r8d0f85b-el6-x86_64-bundle.tar 

解压后如下

[root@localhost mysql]# tar -xvf Percona-Server-5.6.24-72.2-r8d0f85b-el6-x86_64-bundle.tar 
Percona-Server-56-debuginfo-5.6.24-rel72.2.el6.x86_64.rpm
Percona-Server-client-56-5.6.24-rel72.2.el6.x86_64.rpm
Percona-Server-devel-56-5.6.24-rel72.2.el6.x86_64.rpm
Percona-Server-server-56-5.6.24-rel72.2.el6.x86_64.rpm
Percona-Server-shared-56-5.6.24-rel72.2.el6.x86_64.rpm
Percona-Server-test-56-5.6.24-rel72.2.el6.x86_64.rpm
Percona-Server-tokudb-56-5.6.24-rel72.2.el6.x86_64.rpm

3.安装mysql数据库

安装顺序:1. 56-debug-info 2. shared 3. client 4. server

安装命令

rpm -ivh 安装文件的名称

安装Debug-info

rpm -ivh Percona-Server-56-debuginfo-5.6.24-rel72.2.el6.x86_64.rpm

安装shared

rpm -ivh Percona-Server-shared-56-5.6.24-rel72.2.el6.x86_64.rpm

安装client客户端

rpm -ivh Percona-Server-client-56-5.6.24-rel72.2.el6.x86_64.rpm

安装服务端

rpm -ivh Percona-Server-server-56-5.6.24-rel72.2.el6.x86_64.rpm

2.1.5 启动mysql服务项

启动命令: service mysql start
重启命令: service mysql restart
关闭命令: service mysql stop
在这里插入图片描述

2.1.6 导入数据库

1.关闭防火墙
在这里插入图片描述

2.将数据库文件上传到mysql文件夹中
在这里插入图片描述

3.设定用户名和密码
在这里插入图片描述

4.使用新密码登录
在这里插入图片描述

5.导入京淘数据库
命令:
source 绝对路径 /usr/local/src/mysql/jtdb.sql;

Source 相对路径 jtdb.sql;
在这里插入图片描述

6.测试检查数据库是否正确

show tables;

在这里插入图片描述

7.开启mysql对外权限

grant all on *.* to 'root'@'%' identified by 'root';

8.连接数据库
在这里插入图片描述

2.1.7 关于数据库报错解决方案

1.查询进程号PID,然后kill
在这里插入图片描述

2.2 实现数据库主从搭建

2.2.1 开启主库二进制日志文件

1.编辑mysql系统配置文件

vim /etc/my.cnf

在这里插入图片描述

2.重启mysql数据库服务器
在这里插入图片描述

注意检查二进制文件是否存在
在这里插入图片描述

2.2.2 配置从库

1.修改从库二进制文件

vim /etc/my.cnf

在这里插入图片描述

2.重启mysql从库
在这里插入图片描述

2.2.3 实现数据库主从挂载

1.检查主库状态

Show master status;

在这里插入图片描述

2.实现主从挂载

/*实现主从挂载 主库IP/端口/用户名/密码/二进制日志文件/位置*/
CHANGE MASTER TO MASTER_HOST="192.168.126.162",
MASTER_PORT=3306,
MASTER_USER="root",
MASTER_PASSWORD="root",
MASTER_LOG_FILE="mysql-bin.000001",
MASTER_LOG_POS=120

/*启动主从服务*/
START SLAVE

/*检查主从状态*/
SHOW SLAVE STATUS;

/*如果挂载有误,先关闭主从服务 之后重新挂载主从*/
STOP SLAVE

2.2.4 状态检测

执行命令

SHOW SLAVE STATUS;

如果出现两个yes则表示挂在成功
在这里插入图片描述
之后状态测试
修改主库数据,检查数据是否同步。

2.3 实现数据库读写分离

在这里插入图片描述

用户的写库操作执行主库,用户的读操作指向从库。

2.3.2 Ameba(变形虫)

Amoeba是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy。
它集中地响应应用的请求,依据用户事先设置的规则,将SQL请求发送到特定的数据库上执行。基于此可以实现负载均衡、读写分离、高可用性等需求。
与MySQL官方的MySQL Proxy相比,作者强调的是amoeba配置的方便(基于XML的配置文件,用SQLJEP语法书写规则,比基于lua脚本的MySQL Proxy简单)。

2.4 Amoeba搭建步骤

2.4.1 配置JDK环境

1.上传JDK
2.解压JDK
在这里插入图片描述

3.配置环境变量 /etc/profile
在这里插入图片描述

4.刷新环境配置

Source /etc/profile

然后查询jdk版本信息

java -version

在这里插入图片描述

2.4.2 安装Amoeba

1.FZ工具使用
在这里插入图片描述

2.下载文件
在这里插入图片描述

3.解压文件
在这里插入图片描述

2.4.3 修改dbServer.xml

1.配置amoeba连接数据库
在这里插入图片描述

2.配置数据库链接
在这里插入图片描述

3.配置连接池,定义负载均衡
在这里插入图片描述

2.4.4 修改Amoeba.xml

1.配置IP
在这里插入图片描述

2.定义用户名和密码
在这里插入图片描述

3.配置读写分离
在这里插入图片描述

2.4.5 修改JVM内存

-Xms256m  初始化内存大小256m
-Xmx1024m 最大内存1g
-Xss196k  每次线程大小

在这里插入图片描述

2.4.6 启动Amoeba

关闭防火墙
在这里插入图片描述

命令:

-启动命令 ./launcher
-关闭命令 ./shutdown

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/s15810813994/article/details/83042576