分布式系統(tǒng)環(huán)境搭建

一区匣、?系統(tǒng)架構(gòu)3

二犹菱、?項目環(huán)境搭建3

1.?前端3

????1.1負(fù)載均衡3

????1.2?前端技術(shù)框架----Vue.js(開發(fā)環(huán)境搭建)3

????????1.2.1 node.js安裝3

????????1.2.2 cnpm安裝腳手架vue-cli5

????????1.2.3?構(gòu)建vue項目6

????????1.2.4?項目啟動6

2.?后臺6

????2.1 tomcat服務(wù)器6

????????2.1.1下載與安裝6

????????2.1.2?配置7

????2.2 Redis安裝與配置7

????????2.2.1 Redis安裝7

????????2.2.2 Redis配置8

3.數(shù)據(jù)庫8

????3.1安裝Mysql5.78

????????3.1.1?卸載centos7自帶的MariaDB8

????????3.1.2?添加Mysql yum倉庫9

????????3.1.3?安裝Mysql服務(wù)9

????????3.1.4 mysql自啟動配置9

????????3.1.5其他配置9

????3.2 Mysql主從服務(wù)器配置10

????????3.2.1 my.cnf配置10

????????3.2.2?主服務(wù)器配置12

????????3.2.3?從服務(wù)器配置13

????3.3 Mycat安裝與配置14

????????3.3.1?下載與安裝14

????????3.3.2?環(huán)境配置14

????????3.3.3文件配置15

????????3.3.4 mycat自啟動配置15

三脓诡、?項目部署17

????1.前端打包17

????2.?后臺打包18

????3.?項目部署19


一霍比、系統(tǒng)架構(gòu)

本系統(tǒng)的環(huán)境部署和配置主要分為三大塊:前端,后端瘪松,數(shù)據(jù)庫咸作,圖一所示

圖一.?系統(tǒng)架構(gòu)圖

1.?負(fù)載均衡

開發(fā)和測試環(huán)境中,負(fù)載均衡由兩臺代理服務(wù)器宵睦,采用nginx+keepalived實現(xiàn)雙機熱備份和Web服務(wù)器的負(fù)載均衡记罚。在生產(chǎn)環(huán)境中由醫(yī)院提供的F5服務(wù)器做負(fù)載均衡。

2.?Web服務(wù)器

兩臺Web服務(wù)器互為備份状飞,同時實現(xiàn)負(fù)載均衡毫胜,用于部署系統(tǒng)的后端程序,采用Redis解決前端訪問的session共享問題诬辈,安裝Tomcat作為Web服務(wù)軟件,采用Mycat作為數(shù)據(jù)庫服務(wù)器讀寫分離的中間件荐吉。

3.?數(shù)據(jù)庫服務(wù)器

數(shù)據(jù)庫服務(wù)器采用雙主從結(jié)構(gòu)焙糟,從服務(wù)器的數(shù)據(jù)與主服務(wù)器同步,數(shù)據(jù)的寫操作(增刪改)均在主服務(wù)器上進(jìn)行样屠,兩臺主數(shù)據(jù)庫服務(wù)器互為備份穿撮,數(shù)據(jù)庫的讀操作(查詢)均在從數(shù)據(jù)庫服務(wù)器上進(jìn)行,系統(tǒng)數(shù)據(jù)讀寫業(yè)務(wù)量增大時痪欲,可擴展住悦穿、從服務(wù)器數(shù)量實現(xiàn)擴容,前端Web服務(wù)器同過Mycat的配置實現(xiàn)讀寫操作的負(fù)載均衡业踢。

二栗柒、項目環(huán)境搭建

1.?前端

1.1負(fù)載均衡

生產(chǎn)環(huán)境系統(tǒng)中負(fù)載均衡由醫(yī)院方提供F5服務(wù)器做負(fù)載均衡

1.2?前端技術(shù)框架----Vue.js(開發(fā)環(huán)境搭建)

1.2.1 node.js安裝

1.進(jìn)入Node.js官網(wǎng):https://nodejs.org/en/,選擇下載并安裝Node.js(需較新版本)

2.驗證Node.js是否安裝好知举,在windows下瞬沦,win+r召喚出運行窗口太伊,輸入cmd打開命令行窗口。輸入node -v即可得到對應(yīng)的Node.js版本逛钻。

3.安裝cnpm

執(zhí)行命令?

npm install -g cnpm --registry=https://registry.npm.taobao.or

使用npm的國內(nèi)鏡像(npm?國內(nèi)鏡像?https://npm.taobao.org/)cnpm?命令代替默認(rèn)的npm命令僚焦,增加依賴包加載速度且避免資源限制

1.2.2 cnpm安裝腳手架vue-cli

在命令行中運行如下命令,安裝腳手架曙痘。圖4所示

npm install -g @vue/cli

1.2.3?構(gòu)建vue項目

在命令行中鍵入vue create demo (demo是項目名)?即可完成創(chuàng)建

1.2.4?項目啟動

cd到demo(項目)目錄芳悲,先執(zhí)行cnpm install?安裝依賴,然后執(zhí)行npm run serve边坤,即可啟動項目名扛,瀏覽器中輸入localhost:8080出現(xiàn)以下頁面說明啟動成功。

2.?后臺

2.1 tomcat服務(wù)器

2.1.1下載與安裝

1.cd到/usr/local目錄執(zhí)行?如下命令下載tomcat壓縮包(如圖6所示)

wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.39/bin/apache-tomcat-8.5.39.tar.gz

2.執(zhí)行如下命令惩嘉,命令解壓tomcat壓縮包罢洲,完成安裝。

tar -zxvf apache-tomcat-8.5.39.tar.gz

2.1.2?配置

1.?創(chuàng)建systemctl管理tomcat的配置文件?vim /lib/systemd/system/tomcat.service

  2.?配置文件樣例文黎,?圖8所示惹苗。

圖8.?配置文件樣例

  3.?啟動服務(wù)?

systemctl start tomcat.service

4.?查看服務(wù)狀態(tài)?

systemctl status tomcat.service?

5.?開機啟動?

systemctl enable tomcat.service?

重啟之后再查看服務(wù)狀態(tài)已經(jīng)啟動

(注意:由于系統(tǒng)架構(gòu)采用兩臺服務(wù)器并實現(xiàn)負(fù)載均衡,所以兩臺服務(wù)器tomcat安裝配置完全一致)

2.2 Redis安裝與配置

提出問題:在分布式系統(tǒng)中需要使用多臺服務(wù)器耸峭,用戶在客戶端第一次發(fā)送登錄請求(假定一次登陸成功)桩蓉,nginx負(fù)載均衡分配到服務(wù)器1,服務(wù)器1中生成session劳闹,并且響應(yīng)客戶端院究,客戶端中存儲了此session。接下來用戶再次發(fā)送請求本涕,就會產(chǎn)生以下兩種情況:

① nginx將請求分配給服務(wù)器1业汰,服務(wù)器檢測到有此用戶的session,響應(yīng)客戶端菩颖;

② nginx將請求分配給服務(wù)器2样漆,服務(wù)器檢測不到此用戶的session,無法響應(yīng)客戶端晦闰,此時就會報錯放祟。

即:一個請求,有時可以得到響應(yīng)呻右,有時得不到響應(yīng)跪妥。

解決問題:采用redis實現(xiàn)session共享。實現(xiàn)原理如下圖所示声滥,用戶登錄之后會將session寫入redis中眉撵,再次發(fā)送請求時,服務(wù)器2就會從客戶端發(fā)送過來的session中獲取sessionId,再用sessionId從redis中獲取session执桌。

2.2.1 Redis安裝

1.?官網(wǎng)下載壓縮包

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目錄 執(zhí)行

make

redis-4.0.6目錄下會出現(xiàn)編譯后的redis服務(wù)程序redis-server,還有用于測試的客戶端程序redis-cli,兩個程序位于安裝目錄?src?目錄下鄙皇。

cd 到src目錄下執(zhí)行如下命令

make install

3.?下面啟動redis服務(wù)-----以后臺進(jìn)程方式啟dong修改redis.conf文件?daemonize no改為?daemonize yes

然后執(zhí)行

./redis-server /usr/local/redis-4.0.6/redis.conf

2.2.2 Redis配置

1.?開機自啟動

執(zhí)行

vim /etc/systemd/system/redis-server.service

添加如下內(nèi)容

[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

保存退出執(zhí)行如下指令,完成開機自啟配置

systemctl daemon-reload

systemctl start redis-server.service

systemctl enable redis-server.service

3.數(shù)據(jù)庫

3.1安裝Mysql5.7

3.1.1?卸載centos7自帶的MariaDB

執(zhí)行

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

下載后執(zhí)行

yum localinstall mysql57-community-release-el7-11.noarch.rpm

3.1.3?安裝Mysql服務(wù)

1.?執(zhí)行命令完成安裝

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.?開啟遠(yuǎn)程連接端口

執(zhí)行  firewall-cmd --zone=public --add-port=3306/tcp --permanent 開放3306端口

執(zhí)行  firewall-cmd --reload 重啟防火墻

執(zhí)行  firewall-cmd --list-port 查看已開放的端口

3.2 Mysql主從服務(wù)器配置

主從關(guān)系說明:mysql服務(wù)器由兩臺主服務(wù)器(master1--71仰挣,master2--76)和兩臺從服務(wù)器(slave1--72伴逸,slave2--77)組成,master1與master2互為主從膘壶,slave1為master 1的從服務(wù)器,?slave2為master 2的從服務(wù)器错蝴。

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?主服務(wù)器配置

1. master1配置

A.?查看master2狀態(tài) 執(zhí)行命令?show master status亡问,圖18所示官紫。

圖18.?查看master2狀態(tài)

B.?執(zhí)行配置命令,圖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的主服務(wù)器ip

master2是master1的主服務(wù)器


圖19. ?master1配置

2. master2配置

A.?查看master1狀態(tài) 執(zhí)行命令?show master status州藕,圖20所示束世。

圖20. maste1狀態(tài)

B.?執(zhí)行配置命令

change master to master_host=

'192.168.1.221', #master2的主服務(wù)器ip

master_user='master1', # master1是master2的主服務(wù)器

master_password='123456',

master_log_file='mysql_bin.000028',

master_log_pos=154;

圖21. master2配置

3.2.3?從服務(wù)器配置

1. slave1配置(slave1和master2都是master1的從服務(wù)器,所以兩者配置一樣)圖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的從服務(wù)器床玻,所以兩者配置一樣)

執(zhí)行配置命令(圖23所示)

change master to master_host=

'192.168.1.222', #slave2的主服務(wù)器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.首先進(jìn)入/usr/local目錄?cd /usr/local

2.從官網(wǎng)下載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?環(huán)境配置

1.?mycat文件夾授權(quán)?

chmod -R 777 mycat

2.環(huán)境變量添加

vi /etc/profile

添加

export MYCAT_HOME=/usr/local/mycat

3.?使環(huán)境變量生效

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.?創(chuàng)建systemctl管理mycat的配置文件?vim /lib/systemd/system/mycat.service

2.?配置文件樣例锈死,圖27所示

圖27.?配置文件樣例

3.?啟動服務(wù)?s

ystemctl start mycat.service

4.?查看服務(wù)狀態(tài)

systemctl status mycat.service

5.?開機啟動?

systemctl enable mycat.service

重啟之后再查看服務(wù)狀態(tài)已經(jīng)啟動

三贫堰、項目部署

1.?前端打包

在VSCode中打開終端,執(zhí)行如下命令,編譯完成之后根目錄下會生成dist文件夾(圖31所示)待牵,將dist更名為FlupPlatformWebpage其屏,并在vue.config.js中配置生產(chǎn)環(huán)境目錄,使其與包名相同缨该,配置如下漫玄。

npm run build

module.exports = {

? publicPath: process.env.NODE_ENV === 'production'

? ? ? '/FlupPlatformWebpage/'

? ? : '/'

}

圖31.?前端打包

2.?后臺打包

首先在application.yml配置啟動文件

spring:

? profiles:

? ? active: prod

然后在application-prod.yml配置文件中配置數(shù)據(jù)庫連接及redis連接,詳細(xì)配置如下

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包壮不,相關(guān)操作及配置如下圖32所示。

圖32.?后臺打包

3.?項目部署

兩個服務(wù)器都要部署

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末皱碘,一起剝皮案震驚了整個濱河市询一,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖健蕊,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件菱阵,死亡現(xiàn)場離奇詭異,居然都是意外死亡缩功,警方通過查閱死者的電腦和手機晴及,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嫡锌,“玉大人虑稼,你說我怎么就攤上這事∈颇荆” “怎么了蛛倦?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長啦桌。 經(jīng)常有香客問我溯壶,道長,這世上最難降的妖魔是什么甫男? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任且改,我火速辦了婚禮,結(jié)果婚禮上查剖,老公的妹妹穿的比我還像新娘钾虐。我一直安慰自己,他們只是感情好笋庄,可當(dāng)我...
    茶點故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布效扫。 她就那樣靜靜地躺著,像睡著了一般直砂。 火紅的嫁衣襯著肌膚如雪菌仁。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天静暂,我揣著相機與錄音济丘,去河邊找鬼。 笑死洽蛀,一個胖子當(dāng)著我的面吹牛摹迷,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播郊供,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼峡碉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了驮审?” 一聲冷哼從身側(cè)響起鲫寄,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤吉执,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后地来,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體戳玫,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年未斑,在試婚紗的時候發(fā)現(xiàn)自己被綠了咕宿。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,115評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡颂碧,死狀恐怖荠列,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情载城,我是刑警寧澤肌似,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站诉瓦,受9級特大地震影響川队,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜睬澡,卻給世界環(huán)境...
    茶點故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一固额、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧煞聪,春花似錦斗躏、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至云稚,卻和暖如春隧饼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背静陈。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工燕雁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人鲸拥。 一個月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓拐格,卻偏偏與公主長得像,于是被迫代替她去往敵國和親刑赶。 傳聞我的和親對象是個殘疾皇子禁荒,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,055評論 2 355

推薦閱讀更多精彩內(nèi)容