各位客官别着急,这章节内容之前确实有讲过,但是我保证看完这节可以让你变得更(shao)强(tiao)大(keng)。
一、事情原由
部署错误信息开开心心写完bug准备部署,心里美滋滋。谁曾料想当把项目部署到linux服务器上的时候瞬间就炸了。整个应用都启动不起来,可是这一切在window系统上都是好好的。于是赶紧查看日志信息,居然发现了秘密。
通过错误信息可以缩小排查范围,最终将问题锁定在ehcache.xml中。可是为什么在window系统中可以正常运行呢?在linux系统中都启动不起来?先卖个关子,接下来一起学习关于ehcache.xml文件的配置。
二、学习ehcache.xml配置
其实这个配置文件非常的简单,没有什么特别复杂的地方。
<?xml version="1.0" encoding="UTF-8"?>
<ehcache>
<diskStore path="/root/ehcache/"></diskStore>
<!-- 默认缓存配置 -->
<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="true"
/>
<!--天气缓存配置 -->
<cache
name="weather"
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="300"
timeToLiveSeconds="600"
overflowToDisk="true"
/>
</ehcache>
参数说明:
- diskStore :指定数据存储位置。
- defaultCache:默认的缓存配置信息,如果不加特殊说明,则所有对象按照此配置项处理。
- maxElementsInMemory:设置了缓存的上限,最多存储多少个记录对象。
- eternal:代表对象是否永不过期。
- timeToIdleSeconds:最大的发呆时间。
- timeToLiveSeconds:最大的存活时间。
- overflowToDisk:是否允许对象被写入到磁盘。
三、是被什么坑了?
一个项目被一行代码坑了。默认的配置文件在项目部署到linux服务器上的时候没有修改,才导致了血案。
<!--
磁盘存储:将缓存中暂时不使用的对象,转移到硬盘,类似于Windows系统的虚拟内存
path:指定在硬盘上存储对象的路径
-->
<diskStore path="java.io.tmpdir" />
PS:写代码是个细心活,一个不小心就会给自己挖个坑。小伙伴们需要谨慎!
网友评论