1、tomcat目录及端口规划实践

一、目的

        随着项目的发展,模块数量持续递增,优秀的系统架构师,应该系统设计之初,就该尽量把系统规划好,而不是完全依赖持续的架构改进,重构系统存在诸多的风险,需要精心的测试,持续大规模的重构系统,必然较难保证系统在线上稳定、可靠及持续的运行。

        【前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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值