平台升级至nginx+Tomcat9.0.1(Spring5.0.1+velocity2.0+quartz-2.3.0)+redis集群
在公司部份应用上 使用了 Tomcat9.0.1 稳定性还可以,由于将公司的集群服务也升级为 Tomcat9.0.1,下面我们来谈一下改变:
1:logging.properties 支持日志最大天数值 maxDays ,如
1catalina.org.apache.juli.AsyncFileHandler.level = FINE 1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs 1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina. 1catalina.org.apache.juli.AsyncFileHandler.maxDays = 60
以前自己写的日志数量的控制(基于log4j),以下是配置文件
### log file ### log4j.appender.debug = org.apache.log4j.ReYoDailyRollingFileAppender #将日志记录到tomcat下的logs文件夹../logs;日志输入到桌面logs:./logs log4j.appender.debug.File = ../logs/debug log4j.appender.debug.DatePattern='.'yyyy-MM-dd'.log' log4j.appender.debug.MaxFileSize=6 #要控制文件数量的日志文件以 xx 开头 log4j.appender.debug.FileStarWith=debug,error,catalina,localhost,localhost_access_log #true表示消息增加到指定文件中,false则将消息覆盖指定的文件内容,默认值是true log4j.appender.debug.Append = true log4j.appender.debug.Threshold = INFO log4j.appender.debug.layout = org.apache.log4j.PatternLayout log4j.appender.debug.layout.ConversionPattern = [%p] %d{yyyy-MM-dd HH:mm:ss:SSS}(%r) --> [%t] %l: %m %x %n
ReYoDailyRollingFileAppender 核心代码
if (StringUtils.isNotEmpty(fileStarWith)) { if (fileStarWith.indexOf(",") > 0) { for (String fs : fileStarWith.split(",")) { if (FileUtils.sumDirFileNumber(filePath, false, fs) > maxFileSize) { FileUtils.deleteFile(FileUtils.getLastmodifiedtime_first(filePath, fs)); } } } else { if (FileUtils.sumDirFileNumber(filePath, false, fileStarWith) > maxFileSize) { FileUtils.deleteFile(FileUtils.getLastmodifiedtime_first(filePath, fileStarWith)); } } }
2:升级了 reyo.redis.session.manager.tomcat8.RedisSessionManager 以支持 tomcat9.x reyo.redis.session.manager.tomcat9.RedisSessionManager
<Valve className="reyo.redis.session.manager.tomcat9.RedisSessionHandlerValve" /> <Manager className="reyo.redis.session.manager.tomcat9.RedisSessionManager" sentinelMaster="master01" password="password" timeout="30" sentinels="127.0.0.1:6379"/>
集群运行图: