首页 > 其他 > 详细

高可用集群架构的演进

时间:2017-01-15 21:39:28      阅读:306      评论:0      收藏:0      [点我收藏+]

我们项目组是做企业数据总线的,一开始的架构是采用Apache HTTPD + mod_jk 做负载均衡,应用则部署在Tomcat集群上面,该架构方案虽然考虑了Tomcat容器级别的高可用,但并未考虑HTTPD的高可用,该方案的拓扑图如下:

技术分享

 

该方案的缺点显而易见,一旦HTTPD宕机,用户将无法访问应用,考虑到系统的高可用性,我把架构改变成如下拓扑图:

技术分享

在新的架构中,我们决定使用mod_cluster来代替mod_jk, 因为mod_cluster有反向注册功能,也就是说当我需要添加或删除tomcat节点的时候,我只需要在tomcat端做配置,不需要到HTTPD端做配置,这样很好地保证了tomcat节点的动态横向扩展性。新架构中多了一台备用HTTPD服务器,并且主备HTTPD服务器由keepalived来做集群管理,备用HTTPD是热备方案,一旦主HTTPD宕机,备用HTTPD立即升级为主HTTPD接受用户请求。

该架构实现了3个级别的高可用:

1. HTTPD负载均衡器的高可用。

2. Tomcat容器的高可用。

3. Session级别的高可用(使用tomcat的<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>来达到这一点,本质上是各tomcat节点间session复制)。

这个架构的一个不足之处是session共享方面的高可用暂未实现,由以上拓扑图可知,该方案采用的session复制方案,而session复制方案在多tomcat节点的时候会引起广播风暴从而实现性能,而且本质上来说session复制方案也无能跨虚拟机复制,各个虚拟机之间的tomcat session依然不是高可用的,而要达到这一点则必须使用memcached或redis来做分布式session共享,这是下一步要做的。

 

高可用集群架构的演进

原文:http://www.cnblogs.com/stonefeng/p/6287887.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!