一、 系統架構3
二、 專案環境搭建3
1. 前端3
1.1負載均衡3
1.2 前端技術框架----Vue.js(開發環境搭建)3
1.2.1 node.js安裝3
1.2.2 cnpm安裝腳手架vue-cli5
1.2.3 構建vue專案6
1.2.4 專案啟動6
2. 后臺6
2.1 tomcat服務器6
2.1.1下載與安裝6
2.1.2 配置7
2.2 Redis安裝與配置7
2.2.1 Redis安裝7
2.2.2 Redis配置8
3.資料庫8
3.1安裝Mysql5.78
3.1.1 卸載centos7自帶的MariaDB8
3.1.2 添加Mysql yum倉庫9
3.1.3 安裝Mysql服務9
3.1.4 mysql自啟動配置9
3.1.5其他配置9
3.2 Mysql主從服務器配置10
3.2.1 my.cnf配置10
3.2.2 主服務器配置12
3.2.3 從服務器配置13
3.3 Mycat安裝與配置14
3.3.1 下載與安裝14
3.3.2 環境配置14
3.3.3 檔案配置15
3.3.4 mycat自啟動配置15
三、 專案部署17
1.前端打包17
2. 后臺打包18
3. 專案部署19
一、系統架構
本系統的環境部署和配置主要分為三大塊:前端,后端,資料庫,圖一所示

圖一. 系統架構圖
1. 負載均衡
開發和測驗環境中,負載均衡由兩臺代理服務器,采用nginx+keepalived實作雙機熱備份和Web服務器的負載均衡,在生產環境中由醫院提供的F5服務器做負載均衡,
2. Web服務器
兩臺Web服務器互為備份,同時實作負載均衡,用于部署系統的后端程式,采用Redis解決前端訪問的session共享問題,安裝Tomcat作為Web服務軟體,采用Mycat作為資料庫服務器讀寫分離的中間件,
3. 資料庫服務器
資料庫服務器采用雙主從結構,從服務器的資料與主服務器同步,資料的寫操作(增刪改)均在主服務器上進行,兩臺主資料庫服務器互為備份,資料庫的讀操作(查詢)均在從資料庫服務器上進行,系統資料讀寫業務量增大時,可擴展住、從服務器數量實作擴容,前端Web服務器同過Mycat的配置實作讀寫操作的負載均衡,
二、專案環境搭建
1. 前端
1.1負載均衡
生產環境系統中負載均衡由醫院方提供F5服務器做負載均衡
1.2 前端技術框架----Vue.js(開發環境搭建)
1.2.1 node.js安裝
1.進入Node.js官網:https://nodejs.org/en/,選擇下載并安裝Node.js(需較新版本)
2.驗證Node.js是否安裝好,在windows下,win+r召喚出運行視窗,輸入cmd打開命令列視窗,輸入node -v即可得到對應的Node.js版本,
3.安裝cnpm
執行命令
npm install -g cnpm --registry=https://registry.npm.taobao.or
使用npm的國內鏡像(npm 國內鏡像 https://npm.taobao.org/)cnpm 命令代替默認的npm命令,增加依賴包加載速度且避免資源限制
1.2.2 cnpm安裝腳手架vue-cli
在命令列中運行如下命令,安裝腳手架,圖4所示
npm install -g @vue/cli
1.2.3 構建vue專案
在命令列中鍵入vue create demo (demo是專案名) 即可完成創建
1.2.4 專案啟動
cd到demo(專案)目錄,先執行cnpm install 安裝依賴,然后執行npm run serve,即可啟動專案,瀏覽器中輸入localhost:8080出現以下頁面說明啟動成功,

2. 后臺
2.1 tomcat服務器
2.1.1下載與安裝
1.cd到/usr/local目錄 執行 如下命令下載tomcat壓縮包(如圖6所示)
wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.39/bin/apache-tomcat-8.5.39.tar.gz
2.執行如下命令,命令解壓tomcat壓縮包,完成安裝,
tar -zxvf apache-tomcat-8.5.39.tar.gz
2.1.2 配置
1. 創建systemctl管理tomcat的組態檔 vim /lib/systemd/system/tomcat.service
2. 組態檔樣例, 圖8所示,

圖8. 組態檔樣例
3. 啟動服務
systemctl start tomcat.service
4. 查看服務狀態
systemctl status tomcat.service
5. 開機啟動
systemctl enable tomcat.service
重啟之后再查看服務狀態已經啟動
(注意:由于系統架構采用兩臺服務器并實作負載均衡,所以兩臺服務器tomcat安裝配置完全一致)
2.2 Redis安裝與配置
提出問題:在分布式系統中需要使用多臺服務器,用戶在客戶端第一次發送登錄請求(假定一次登陸成功),nginx負載均衡分配到服務器1,服務器1中生成session,并且回應客戶端,客戶端中存盤了此session,接下來用戶再次發送請求,就會產生以下兩種情況:
① nginx將請求分配給服務器1,服務器檢測到有此用戶的session,回應客戶端;
② nginx將請求分配給服務器2,服務器檢測不到此用戶的session,無法回應客戶端,此時就會報錯,
即:一個請求,有時可以得到回應,有時得不到回應,
解決問題:采用redis實作session共享,實作原理如下圖所示,用戶登錄之后會將session寫入redis中,再次發送請求時,服務器2就會從客戶端發送過來的session中獲取sessionId,再用sessionId從redis中獲取session,

2.2.1 Redis安裝
1. 官網下載壓縮包
wget http://download.redis.io/releases/redis-4.0.6.tar.gz
2. 解壓
tar -zxvf redis-4.0.6.tar.gz
3. cd到redis-4.0.6目錄 執行
make
redis-4.0.6目錄下會出現編譯后的redis服務程式redis-server,還有用于測驗的客戶端程式redis-cli,兩個程式位于安裝目錄 src 目錄下,
cd 到src目錄下執行如下命令
make install
3. 下面啟動redis服務-----以后臺行程方式啟dong
修改redis.conf檔案 daemonize no 改為 daemonize yes
然后執行
./redis-server /usr/local/redis-4.0.6/redis.conf
2.2.2 Redis配置
1. 開機自啟動
執行
vim /etc/systemd/system/redis-server.service
添加如下內容
[Unit]
Description=Redis Server Manager
After=syslog.target
After=network.target
[Service]
Type=simple
User=redis
Group=redis
PIDFile=/var/run/redis_6379.pid
ExecStart=/usr/local/redis/redis-server /usr/local/redis/redis.conf
ExecStop=/usr/local/redis/redis-cli shutdown
Restart=always
[Install]
WantedBy=multi-user.target
保存退出執行如下指令,完成開機自啟配置
systemctl daemon-reload
systemctl start redis-server.service
systemctl enable redis-server.service
3.資料庫
3.1安裝Mysql5.7
3.1.1 卸載centos7自帶的MariaDB
執行
rpm -qa|grep mariadb
rpm -e mariadb-libs-5.5.56-2.el7.x86_64 –nodeps
3.1.2 添加Mysql yum倉庫
下載命令
curl -LO http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
下載后執行
yum localinstall mysql57-community-release-el7-11.noarch.rpm
3.1.3 安裝Mysql服務
1. 執行 命令完成安裝
yum install mysql-community-server
3.1.4 mysql自啟動配置
vim /etc/rc.local
添加service mysqld start即可
圖12所示
圖12 mysql自啟動
3.1.5其他配置
1.修改密碼
查到密碼 grep 'temporary password' /var/log/mysqld.log
修改密碼ALTER USER test@'%' IDENTIFIED BY '123456';
2. 開啟遠程連接埠
執行 firewall-cmd --zone=public --add-port=3306/tcp --permanent 開放3306埠
執行 firewall-cmd --reload 重啟防火墻
執行 firewall-cmd --list-port 查看已開放的埠
3.2 Mysql主從服務器配置
主從關系說明:mysql服務器由兩臺主服務器(master1--71,master2--76)和兩臺從服務器(slave1--72,slave2--77)組成,master1與master2互為主從,slave1為master 1的從服務器, slave2為master 2的從服務器,
3.2.1 my.cnf配置
1. Master1 配置my.cnf檔案 (/etc/my.cnf 下同),圖14所示

圖14 Master1 配置my.cnf
2. Master2的my.cnf配置,圖15所示

圖15. Master2 配置my.cnf
3. Slave1配置my.cnf檔案,圖16所示
圖16. Slave1配置my.cnf檔案
4. Slave2配置my.cnf檔案,圖17所示
圖17 Slave2配置my.cnf檔案
3.2.2 主服務器配置
1. master1配置
A. 查看master2狀態 執行命令 show master status,圖18所示,

圖18. 查看master2狀態
B. 執行配置命令,圖19所示
change master to master_host='192.168.1.222', master_user='master2',master_password='123456',master_log_file='mysql_bin.000018',master_log_pos=154; master_host是master1的主服務器ip master2是master1的主服務器
圖19. master1配置
2. master2配置
A. 查看master1狀態 執行命令 show master status,圖20所示,

圖20. maste1狀態
B. 執行配置命令
change master to master_host=
'192.168.1.221', #master2的主服務器ip
master_user='master1', # master1是master2的主服務器
master_password='123456',
master_log_file='mysql_bin.000028',
master_log_pos=154;

圖21. master2配置
3.2.3 從服務器配置
1. slave1配置(slave1和master2都是master1的從服務器,所以兩者配置一樣)圖22. 所示
change master to master_host=
'192.168.1.221',
master_user='master1',
master_password='123456',
master_log_file='mysql_bin.000028',master_log_pos=154;
圖22. slave1配置
2. slave2配置(slave2和master1都是master2的從服務器,所以兩者配置一樣)
執行配置命令(圖23所示)
change master to master_host=
'192.168.1.222', #slave2的主服務器ip
master_user='master2',
master_password='123456',
master_log_file='mysql_bin.000018',
master_log_pos=154;

圖23. slave2配置
3.3 Mycat安裝與配置
3.3.1 下載與安裝
1.首先進入/usr/local目錄 cd /usr/local
2.從官網下載mycat(圖24所示)
wget http://dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
3、解壓mycat壓縮包
tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
3.3.2 環境配置
1. mycat檔案夾授權
chmod -R 777 mycat
2.環境變數添加
vi /etc/profile
添加
export MYCAT_HOME=/usr/local/mycat
3. 使環境變數生效
source /etc/profile
4. 啟動mycat

3.3.3檔案配置
1. 配置server.xml (Path: /usr/local/mycat/conf/server.xml) 圖25所示

圖25. 配置server.xml
2. 配置 schema.xml (path: /usr/local/mycat/conf/schema.xml),圖26所示

圖26. 配置 schema.xml
3.3.4 mycat自啟動配置
1. 創建systemctl管理mycat的組態檔 vim /lib/systemd/system/mycat.service
2. 組態檔樣例,圖27所示

圖27. 組態檔樣例
3. 啟動服務 s
ystemctl start mycat.service
4. 查看服務狀態
systemctl status mycat.service
5. 開機啟動
systemctl enable mycat.service
重啟之后再查看服務狀態已經啟動
三、專案部署
1. 前端打包
在VSCode中打開終端,執行如下命令,編譯完成之后根目錄下會生成dist檔案夾(圖31所示),將dist更名為FlupPlatformWebpage,并在vue.config.js中配置生產環境目錄,使其與包名相同,配置如下,
npm run build
module.exports = {
publicPath: process.env.NODE_ENV === 'production'
? '/FlupPlatformWebpage/'
: '/'
}

圖31. 前端打包
2. 后臺打包
首先在application.yml配置啟動檔案
spring:
profiles:
active: prod
然后在application-prod.yml組態檔中配置資料庫連接及redis連接,詳細配置如下
spring: datasource: url: jdbc:mysql://localhost:8066/yaxin?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8 username: root password: Yaxin123456 driver-class-name: com.mysql.jdbc.Driver redis: host: 133.0.5.65 password: yaxin123456 port: 6379 database: 0 timeout: 2400s
打開終端(terminal)cd到專案yaxin(module)目錄,輸入mvn clean install -DMaven.test.skip=true,編譯完成之后會在yaxin目錄下生成target目錄,此目錄下的FlupPlatformServer.war檔案就是即將部署的war包,相關操作及配置如下圖32所示,

圖32. 后臺打包
3. 專案部署
兩個服務器都要部署
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/26026.html
標籤:架構設計
上一篇:打造獨特的ORM開發框架
