集群后synchronized失效是必然的,类似的同步操作必须转换为通过全局的同步互斥机制,例如数据库锁,这样会造成性能的急剧下降,如果系统有大量sychronized的处理不适合做集群。
参见j2ee desgin and development.
集群文件共享::
Share folder
1、共享目录,都mount同一个地方,简单方便的做法;
2、存放在数据库里,需要改动代码,性能上面也低。
3、把那个功能独立成一个应用, 不部署在集群上了(前提能够满足业务这样做当然好,不过要用到额外的网络资源)
4、2. 也可以通过向一个专门的server请求获得锁来控制
定时任务
Quartz支持集群环境下的Task,原理就是用数据库记录Task并进行同步。
我们就这么用的