分佈式系統環境搭建

1、 系統架構3前端

2、 項目環境搭建3vue

  1. 前端3node

    1.1負載均衡3mysql

    1.2 前端技術框架----Vue.js(開發環境搭建)3linux

      1.2.1 node.js安裝3nginx

      1.2.2 cnpm安裝腳手架vue-cli5redis

      1.2.3 構建vue項目6spring

      1.2.4 項目啓動6sql

  2. 後臺6vue-cli

    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

3、 項目部署17

  1.前端打包17

  2. 後臺打包18

  3. 項目部署19

1、 系統架構

本系統的環境部署和配置主要分爲三大塊:前端,後端,數據庫圖一所示

圖一. 系統架構圖

1.  負載均衡

開發和測試環境中,負載均衡由兩臺代理服務器,採用nginx+keepalived實現雙機熱備份和Web服務器的負載均衡。在生產環境中由醫院提供的F5服務器作負載均衡。

2.  Web服務器

兩臺Web服務器互爲備份,同時實現負載均衡,用於部署系統的後端程序,採用Redis解決前端訪問的session共享問題,安裝Tomcat做爲Web服務軟件,採用Mycat做爲數據庫服務器讀寫分離的中間件。

3.  數據庫服務器

數據庫服務器採用雙主從結構,從服務器的數據與主服務器同步,數據的寫操做(增刪改)均在主服務器上進行,兩臺主數據庫服務器互爲備份,數據庫的讀操做(查詢)均在從數據庫服務器上進行,系統數據讀寫業務量增大時,可擴展住、從服務器數量實現擴容,前端Web服務器同過Mycat的配置實現讀寫操做的負載均衡。

2、 項目環境搭建

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 項目啓動

cddemo(項目)目錄,先執行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--71master2--76)和兩臺從服務器(slave1--72slave2--77)組成master1master2互爲主從,slave1master 1的從服務器, slave2master 2的從服務器

3.2.1 my.cnf配置

1. Master1 配置my.cnf文件 /etc/my.cnf 下同)14所示

 14 Master1 配置my.cnf

2.  Master2my.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配置(slave1master2都是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配置(slave2master1都是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.從官網下載mycat24所示

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

重啓以後再查看服務狀態已經啓動

3、 項目部署

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

打開終端(terminalcd到項目yaxinmodule)目錄,輸入mvn clean install -DMaven.test.skip=true,編譯完成以後會在yaxin目錄下生成target目錄,此目錄下的FlupPlatformServer.war文件就是即將部署的war包,相關操做及配置以下圖32所示。

32. 後臺打包

3.  項目部署

兩個服務器都要部署

相關文章
相關標籤/搜索