1、tomcat目录及端口规划实践
2019獨角獸企業重金招聘Python工程師標準>>>
一、目的
????????隨著項目的發展,模塊數量持續遞增,優秀的系統架構師,應該系統設計之初,就該盡量把系統規劃好,而不是完全依賴持續的架構改進,重構系統存在諸多的風險,需要精心的測試,持續大規模的重構系統,必然較難保證系統在線上穩定、可靠及持續的運行。
????????【前Google全球研發總監:好的架構需要精心設計,千萬別把問題留給進化】
二、需求
??????? 1)一個Server上支持多個項目,每個項目支持多個實例,所有項目和實例的端口都不沖突。假如ServerA掛了,把ServerA上所有的tomcat及程序包,同路徑復制到ServerB上,立馬能運行,不會影響ServerB上原有的系統。
?????????2) 多個tomcat實例或tomcat實例內部端口需要規律、不沖突、方便記憶,切能盡量充分利用系統端口,我們項目中實際用到http訪問端口、ajp、shutdown及兩個jmx端口 。
??????? 3)對于一個模塊來說,需要有統一的對外負載端口,禁止對外公布真實端口,減少后期由于各類原因引發端口遷移,導致業務或配置方也得同時修改。一般我們會使用nginx,統一輸出80端口,來屏蔽真實實例端口,通過server和upstream來配置負載關系。
??????? 4)通過線上實踐及業務擴展,長期來看,我覺得nginx將逐步充當web容器或者程序的擴展功能,典型的應用實例為openresty。
三、部署結構示意圖
???????
四、目錄規劃
????jdk目錄:/usr/local/java/jdkversion,例如:/usr/local/java/jdk1.8.0_05
????tomcat目錄:/usr/local/tomcat/version,例如: /usr/local/tomcat/8.0.9
????下面假設tomcat使用8.0.9版本
????tomcat_ home :/usr/local/tomcat/8.0.9
????tomcat實例目錄:/usr/local/tomcat/8.0.9/instances/實例端口號
????tomcat_base:/usr/local/tomcat/8.0.9/instances/ 實例端口號
????tomcat日志目錄:data/tomcat/8.0.9/ 實例端口號 /logs/
????程序包目錄:/data/deplpoy/實例端口號
五、權限規劃
????建議新建個無密碼的tomcat賬號,使用啟動tomcat進程。
useradd -s /sbin/nologin tomcat??? 上述目錄規劃中除了jdk目錄配置為root權限外,其他目錄統一配置為tomcat權限。
六、端口規劃后的成果
????1、每臺服務器在性能允許的情況下,最多支持99個業務模塊。
????2、每個業務模塊支持55個tomcat實例。
????3、每個tomcat實例可配置10個對外端口。
????4、在單臺服務器部署tomcat實例<=5445個的情況下,能保證tomcat間及tomcat內部所有端口端口不沖突。
????5、端口有規律,便于記憶及運維配置,同一類端口有相同或相近的數字變更規律,具體規律如下:
????????1)同一模塊下屬的多個tomcat實例中各個端口按1000的公差值遞增,例如:模塊A在相同服務器上有多個tomcat實例,第一個tomcat實例http訪問端口為10001,那么第二個tomcat實例的http訪問端口為11001,以此類推。計算公式為:第N個tomcat實例的該端口=第一個tomcat實例的該端口+1000*N(N為該tomcat實例是模塊A中的第幾個實例,N<=54);
??????? 2)同一個tomcat實例內,各端口間以100的公差遞增,例如模塊A的第一個tomcat實例,http訪問端口為10001,那么shutdown、AJP、rmiRegistryPortPlatform和miServerPortPlatform的端口分別為10101、10201、10301和10404。
計算公式為:第N個該端口=第一個該端口+100*N(N為該tomcat實例中的第幾個端口,N<=9);
??????? 3)同一模塊下屬的多個tomcat實例中相同類型的端口的端口號最后兩位的數值是一樣的,例如模塊A,有5個實例,http訪問端口分別為10001、11001、12001、13001和14001,5個端口號最后兩位都是01,可用來標識該模塊,即使遞增到第55個模塊實例,http訪問端口最后兩位還是01,為64001。
??? 6、建議:在集群部署模式下,建議提供相同服務的多臺服務器,配置、模塊和端口規劃一致,可進一步的提高系統的可維護性.。
七、端口規劃列表
轉載于:https://my.oschina.net/andChow/blog/538594
總結
以上是生活随笔為你收集整理的1、tomcat目录及端口规划实践的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: require(os)
- 下一篇: iOS---搜索功能