分布式環境Tomcat多節點集群下共享目錄配置,tomcat虛擬目錄+nfs


我們可能有這種場景:

集群環境下,多個web容器需要請求一個共享目錄下的文件,比如保存圖片或者錄音文件,任意一個節點保存后其他節點需要及時獲取,此時就需要目錄進行同步了,否則Nginx負載到任意一個節點上請求文件時,找不到文件將返回404,這時候linux下可以用rsync處理,但是rsync雙向同步有很多問題,在jekins環境下很多很多問題,不建議使用。

這里建議用nfs處理,或者用其他分布式文件系統如gfs或者ceph等,或者直接將這些文件放到cdn(看項目大小,財氣是否夠粗夠硬),考慮文件很多性能問題建議cdn,其次gfs,ceph,最low的nfs處理吧。

 

處理分3個步驟:

1)安裝nfs

2)配置nfs

3)配置tomcat 虛擬目錄

 

1.1)安裝nfs

  yum install nfs-utils portmap nfs4-acl-tools  (每個節點分別執行)

1.2)各自節點(tomcat所在linux)

  mkdir -p /data/nfs

  chown -R tomcat:tomcat /data/nfs

  chmod -R 777 /data/nfs

  以上3條命令每個節點分別執行

2.1)nfs server(只有一個server,選用一個節點,其他均為客戶端)配置

  vi /etc/exports

  添加如下內容:

    /data/nfs *(rw,sync)

2.2)啟動nfs服務

  centos redhat 5版本執行:

    service portmap restart

    service nfs restart

    

    讓nfs隨機啟動:

      chkconfig portmap on

      chkconfig nfs on

  centos redhat 6版本執行:

    service rpcbind restart

    service nfs restart

    讓nfs隨機啟動:

      chkconfig rpcbind on

      chkconfig nfs on

2.3)客戶端掛載nfs文件系統

   a、關閉防火牆(各節點分別執行,或者添加iptables策略)

    service iptables stop

    chkconfig iptables off

   b、掛載nfs

     mount -t nfs 10.0.0.1:/data/nfs /data/nfs

     上面10.0.0.1為nfs server ip地址,上面這條命令各節點分別執行

   這時客戶端節點執行df -h命令應該能看到nfs掛載點文件系統了

3.1)tomcat配置虛擬目錄

  server.xml中添加host:

    <Context path="/mp3" docBase="/data/nfs" reloadable="true"></Context

 

以上tomcat就可以訪問webapp(deploy目錄)外的文件了,我們可以通過http://ip:端口/工程名/mp3/001.mp3訪問我們的音頻文件了,nginx不管分發到哪個節點tomcat都不會返回404了,因為任意一個節點往nfs目錄下寫文件實際上時寫到nfs server文件系統上,其他tomcat節點均可以訪問。

以上教程比較簡易,如遇問題可以郵件跟我聯系dba_xyx@hotmail 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM