Tomcat集群配置方案大体上可以分为两种配置方案:共享Session型与不同享Session型。当然,其中各有千秋,如果不共享需要上层需要有一定结构进行一致化路由。何谓一致化路由,简单来讲,就是你上次怎么走路,这次还是怎么走,实现的方式有很多种,例如直接按照nginx进行来源或者目的ip进行相应的hash,dns进行地域划分等等,只要能保证上一次和下一次踏入的是“同一条河流”即可。
另一方面,如果不共享需要有一定机制进行共享Session机制,此时共享一般分为两种,找个第三方存储Session或者互相备份(或路由)Session。第三方的存储要求速度肯定快,最好网络也要好,所以这种情况下一般选择内存存储单元来完成,你可以原则Memcached或者Redis,如果你对Session的偶尔失效很在意的话建议使用后者。第二种方案是让tomcat之间知道彼此的存在,或者拥有所有的Session内容。
此时,可以将以上的这些方案,分为五种情况,下面各个情况在扩展性、容错性、权重支持、少冗余、随机性的特点(+比较强,-比较弱)
其中,扩展性是指快速部署新的节点时所需要做的配置工作;容错性是指发生错误的时候对全局的影响程度;权重支持是指是否支持不同节点之间动态分配权重;少冗余是指是Session信息的冗余程度;随机性是指是否在不同节点间随机进行访问的支持。
存储方案 | 扩展性 | 容错性 | 权重支持 | 少冗余 | 随机性 |
一致性路由(DNS、地址划分) | +++ | ++ | - | +++ | - |
一致性路由(一致性Hash) | +++ | ++ | + | +++ | + |
第三方存储Session | +++ | + | +++ | +++ | +++ |
Session合并复制 | - | +++ | +++ | --- | ++ |
Session路由 | + | + | ++ | ++ | + |
综合以上情况,第三方存储还是比较占优势。
以上对比是个人观点,欢迎大家交流评论。
时间: 2024-11-09 04:35:52