準備環境:
主機1: -----172.18.250.106-----node1.magedu.com-----tomcat1主機
主機2: -----172.18.250.117-----node2.magedu.com-----tomcat2主機
主機3: -----172.18.250.202-----www.magedu.com-----反向代理主機
主機4: -----172.18.250.192-----node3.magedu.com-----memcached1主機
主機5: -----172.18.250.220-----node4.magedu.com-----memcached2主機
- 關閉所有主機的iptables安全策略及selinux
# iptables -F
# setenforce 0
- 對每一臺主機進行時間同步
# ntpdate 172.18.0.1
- 修改主機名并同步
tomcat1主機
# hostnamectl set-hostname node1.magedu.com && exec bash
tomcat2主機
# hostnamectl set-hostname node2.magedu.com && exec bash
反向代理主機
# hostnamectl set-hostname www.magedu.com && exec bash
memcached1主機
# hostnamectl set-hostname node3.magedu.com && exec bash
memcached2主機
# hostnamectl set-hostname node4.magedu.com && exec bash
- 原理簡單說明一下,memcached是為了在tomcat無法提供服務是使正在連接的會話不會中斷,也就是把tomcat的session會話共享到memcached的主機上,而memcached主機和tomcat主機不是同一臺主機,在tomcat主機意外宕機是,自動切換到memcached的主機上而已!
- 配置tomcat主機1
安裝tomcat服務及jdk包文件
# yum install -y java-1.8.0-openjdk-devel
# yum -y install tomcat
# cd /usr/share/tomcat/webapps/
# mkdir -p {myapp,WEB-INF}
# cd myapp/
# vim index.jsp 注:編輯測試頁面
測試image
image
- 配置tomcat2主機,步驟與tomcat1基本相同,測試頁面稍作調整,這里我就不作詳細步驟了!只列出測試頁面的不同!
測試imageimage
- 在主機3和主機4上安裝memcached并啟動,驗證啟動結果
# yum install -y memcached
# systemctl start memcached
# ss -ntl
注:11211端口已經打開,啟動成功!image
- 在這里我們需要了解兩個概念
sticky sessions :粘性sessions
non-sticky sessions:非粘性sessions
這里我們使用粘性sessions實現會話共享
為了實現會話共享,我們還需要幾個工具包 - 軟件包
1. javolution-5.4.3.1.jar注:流式化工具
2.msm-javolution-serializer-1.8.3.jar注:MSM支持兩種模式即粘性sessions和非粘性sessions
3.memcached-session-manager-1.8.3.jarmemcached會話管理器
4.memcached-session-manager-tc7-1.8.3.jarmemcached會話管理器
5.spymemcached-2.11.1.jar驅動:tomcat連接memcached
所需包文件下載地址https://github.com/magro/memcached-session-manager/wiki/SetupAndConfiguration
下載包文件至各tomcat節點的tomcat安裝目錄下的lib目錄中
因為我這里已經把包文件下載好放到ftp服務器上,所以只要從ftp服務器中下載即可
把下載好的包文件放到/usr/share/tomcat/lib/下即可image然后配置tomcat1的主配置文件image
# vim /etc/tomcat/server.xml
修改tomcat2的主配置文件image重啟tomcat服務image
- 最后我們配置反向代理服務器
# yum -y install nginx
# vim /etc/nginx/nginx.conf
重啟nginx服務image
測試調度(默認輪詢方式)image注:可以看出tomcat主機是和輪詢方式調度,而會話Session ID保持不變!實現了會話綁定!image