** 基于Springcloud的javaweb專案部署集群環境,采用jdk運行(jar包),consul 進行注冊服務監控健康,實作并發量大的時候可以快速回應的高并發效果**
操作程序如下
1.安裝nfs服務
2.安裝相應中間件服務
3.安裝資料庫以及快取資料庫
4.組態檔
5.運行檔案除錯
(監控健康服務節點consul /請求反向代理nginx/)
1.安裝Net file system 共享檔案服務(nfs)
離線安裝(內網/脫網/局域網)/外網直接yum install nfs rpcbind即可~操作如下
NFS 服務需要依賴 RPC 服務,所以這里 NFS 服務端需要安裝 rpcbind 和 nfs-utils,客戶端只需要安裝 nfs-utils,
1.首先確認服務端系統是否已安裝nfs
rpm -qa nfs-utils rpcbind
2.安裝服務
如果計算機可以連接到互聯網,則可以通過以下命令進行安裝:
#服務端
yum install -y nfs-utils rpcbind
#客戶端
yum install -y nfs-utils
但是,很多時候由于安全的原因不能聯網,所以只能離線安裝,
下載離線安裝包,
rpcbind:
libtirpc-0.2.4-0.15.el7.x86_64.rpm
rpcbind-0.2.0-47.el7.x86_64.rpm
nfs-utils:
nfs-utils-1.3.0-0.61.el7.x86_64
tcp_wrappers-7.6-77.el7.x86_64
...
#這個依賴有點多,需要的可以聯系我,就不一一列出來了
百度網盤下載地址:https://pan.baidu.com/s/1mq7ZnWyn33krFcE3AnBQPQ
提取碼:cfq2
安裝離線包:
#安裝路徑下的所有rpm包
rpm -Uvh *.rpm --nodeps --force
#安裝特定的rpm包
rpm -hvi dejagnu-1.4.2-10.noarch.rpm
最后,檢查是否安裝成功,
配置:
1.在服務端創建一個共享目錄 /data/share ,作為客戶端掛載的遠端入口,然后設定權限,
mkdir -p /data/share
chmod 755 /data/share
2.修改 NFS 組態檔 /etc/exports
vim /etc/exports
#配置單個ip
/data/share 192.168.0.130(rw,sync,insecure,no_subtree_check,no_root_squash)
/data/share 192.168.0.131(rw,sync,insecure,no_subtree_check,no_root_squash)
#配置ip段
/data/share 192.168.0.130/139(rw,sync,insecure,no_subtree_check,no_root_squash)
#配置所有ip可以掛載
/data/share *(rw,sync,insecure,no_subtree_check,no_root_squash)
說明:
/data/share-共享目錄
192.168.0.130-IP地址,可以是特定的ip地址、ip地址段或所有可以訪問的ip
rw,sync,insecure,no_subtree_check,no_root_squash-訪問控制引數,具體參考下面串列,
| 引數 | 說明 |
|---|---|
| ro | 只讀 |
| rw | 讀寫 |
| sync | 同步共享-所有資料在請求時寫入共享 |
| async | 異步共享-nfs 在寫入資料前可以回應請求 |
| secure | nfs 通過 1024 以下的安全 TCP/IP 埠發送 |
| insecure | nfs 通過 1024 以上的埠發送 |
| wdelay | 如果多個用戶要寫入 nfs 目錄,則歸組寫入(默認) |
| no_wdelay | 如果多個用戶要寫入 nfs 目錄,則立即寫入,當使用 async 時,無需此設定 |
| hide | 在 nfs 共享目錄中不共享其子目錄 |
| no_hide | 共享 nfs 目錄的子目錄 |
| subtree_check | 如果共享 /usr/bin 之類的子目錄時,強制 nfs 檢查父目錄的權限(默認) |
| no_subtree_check | 不檢查父目錄權限 |
| all_squash | 共享檔案的 UID 和 GID 映射匿名用戶 anonymous,適合公用目錄 |
| no_all_squash | 保留共享檔案的 UID 和 GID(默認) |
| root_squash | root 用戶的所有請求映射成如 anonymous 用戶一樣的權限(默認) |
| no_root_squash | root 用戶具有根目錄的完全管理訪問權限 |
| anonuid=xxx | 指定 nfs 服務器 /etc/passwd 檔案中匿名用戶的 UID |
| anongid=xxx | 指定 nfs 服務器 /etc/passwd 檔案中匿名用戶的 GID |
啟動服務并測驗
1.啟動rpc服務
service rpcbind start
#或者使用如下命令
/bin/systemctl start rpcbind.service
# 查看 NFS 服務項 rpc 服務器注冊的埠串列
rpcinfo -p localhost
2.啟動nfs服務
service nfs start
#或者使用如下命令亦可
/bin/systemctl start nfs.service
# 啟動 NFS 服務后 rpc 服務已經啟用了對 NFS 的埠映射串列
# rpcinfo -p localhost
3.在另一臺 Linux 上掛載目錄
#查看配置
showmoun -e 192.168.xxx.xxx
#新建目錄
mkdir -p /share
#掛載共享目錄(掛載遠端目錄到本地 /share 目錄)
mount 192.168.0.130:/data/share /share
#查看掛載目錄狀況
df -h | grep 10.222.77.86
#如果要卸載目錄
umount /share
2.安裝注冊服務consul
簡介:Consul是一個分布式高可用的系統,一個發現和配置服務的工具,客戶端可以利用它提供的API注冊和發現服務,及監控檢測功能實作服務的高可用,
下載
wget https://releases.hashicorp.com/consul/1.5.2/consul_1.5.2_linux_amd64.zip
離線環境下則直接拉包進來即可~
解壓
-方法1
unzip consul_1.5.2_linux_amd64.zip -d /usr/bin ##解壓到usr/bin目錄下
unzip consul_1.5.2_linux_amd64.zip ##解壓到當前目錄下
-方法2
unzip consul_1.5.2_linux_amd64.zip ##解壓
cp consul /usr/local/bin/ ##移動
驗證
consul
啟動開發模式(快速啟動一個單節點Consul,但是不能資料持久化,不能用于生產環境)
consul agent -dev
consul server端的啟動命令:
consul agent -server -bootstrap-expect 1 -client 0.0.0.0 -config-dir /etc/consul.d
或者 這樣可以輸出日志
nohup consul agent -server -bootstrap-expect 1 -client 0.0.0.0 -config-dir /etc/basic.json >consul.log &
-config-dir :就是指定加載置檔案的目錄,我們只需要填寫組態檔的目錄就可以幫助我們把該目錄下所有的以.json結尾組態檔加載進去,它的加載順序是根據26個字母的順序加進行加載組態檔的,檔案內容都是json格式的資料,默認后面檔案定義配置會覆寫前面檔案定義的配置,
{
"ports": {
"http": 8501 ,
"dns": 8601,
"grpc": 8401,
"serf_lan": 8311,
"serf_wan": 8312,
"server": 8310
}
啟動consul server端后,會發現我們的埠全部變成上面描述的埠,consul web UI的埠不在是默認的8500 而變成了 8501 ,另外當我們啟動其他consul時,通過-retry-join 加入server端時會報錯,拒絕連接,原因就是因為server端的埠發生了改動,它默認去連接8301埠,此時-retry-join不能直接寫ip地址,需要寫對應的修改后的serf_lan埠 例如:
consul agent -data-dir /consul/data2 -advertise 127.0.0.1 -client 0.0.0.0 -join 127.0.0.1:8311

查看集群成員
consul members

ps:
查看最近歷史日志
consul monitor
停止
gracefully或者forcefully
插入節點注冊服務寫一個json資料:
{
"service":{
"name":"test01",
"tags":[
"",
""
],
"address":"127.0.0.1",
"port":3010,
"enable_tag_override": false,
"check":{
"deregisterCriticalServiceAfter":"90m",
"http":"http://127.0.0.1:3010/health",
"interval":"10s"
}
}
}
名詞解釋:
tags:服務的tag,自定義,可以根據這個tag來區分同一個服務名的服務
address:服務注冊到consul的IP,服務發現,發現的就是這個IP
port:服務注冊consul的PORT,發現的就是這個PORT
enable_tag_override:標簽是否允許覆寫
http:指定健康檢查的URL,呼叫后只要回傳20X,consul都認為是健康的
interval:健康檢查間隔時間,每隔10s,呼叫一次健康檢查的URL
重啟Agent
consul agent -dev -config-dir /etc/consul.d/
3.安裝Nginx
1.首先下載Nginx前需要一些插件~
可以查看gcc版本,若無,則就基本無了
gcc -v
安裝gcc,pcre、pcre-devel,zlib,zlib-devel,openssl,openssl-devel操作可以直接百度~
- gcc是linux下的編譯器在此不多做解釋,感興趣的小伙伴可以去查一下相關資料,它可以編譯 C,C++,Ada,Object C和Java等語言.
- pcre是一個perl庫,包括perl兼容的正則運算式庫,nginx的http模塊使用pcre來決議正則運算式,所以需要安裝pcre庫,
- zlib庫提供了很多種壓縮和解壓縮方式nginx使用zlib對http包的內容進行gzip,
- openssl是web安全通信的基石,沒有openssl,可以說我們的資訊都是在裸奔
正式安裝nginx
1、下載nginx安裝包
wget http://nginx.org/download/nginx-1.9.9.tar.gz
2、把壓縮包解壓 usr/local/java
tar -zxvf nginx-1.9.9.tar.gz
3、切換到cd /usr/local/java/nginx-1.9.9/下面
執行三個命令:
初始化默認配置
./configure
編譯
make
安裝
make install
4、切換到/usr/local/nginx安裝目錄,nginx的組態檔nginx.conf檔案,主要也就是埠
5、啟動nginx服務 切換目錄到/usr/local/nginx/sbin下面
./nginx
查看nginx服務是否啟動成功
ps -ef | grep nginx
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/352174.html
標籤:其他
上一篇:2021-11-7總結
