億級流量架構|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

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章