1、概述
EOS本身不提供负载均衡、流量控制、过负载控制的处理,主要依赖于J2EE服务器和网络硬件设备来完成。本文根据普元公司的经验,主要论述对WebLogic Server负载均衡的考虑。
2、负载均衡
a)负载均衡方式
通过配置WebLogic Server集群(Cluster)可以实现负载均衡、失败转移功能。WebLogic Server可以对 Web应用、EJB/RMI、JDBC连接、JMS进行集群处理,建议在 Web应用层实现集群,JMS、EJB不进行集群处理,这样部署形式比较简单,易于管理,性能也比较高。JDBC连接的集群需要根据数据服务的要求,一般来说需要实现。
Web层集群需要一台 Http Serverl 做代理,将负载分配到集群中所有的实例,实现负载均衡。可以使用专门的硬件,可以利用WebLogic Server完成,也可以使用Apache + WebLogic proxy,建议采用Apache + WebLogic proxy的方式,这样对硬件的要求比较小,情能相对会好一些。
为提高性能,也可以将一些静态的内容部署到 Apache Server,主要是html和图片等
WebLogic集群需要一台Server作为 Managel Server,建议这台Server不处理请求,专门做管理。
WebLogic 集群中Server之间通过l Scoket通讯,建议集群的所有Server位于同一网段中。
b)失败转移与Session复制
WebLogic Server通过 Session 复制在失败转移的时候保存用户数据,默认支持3种复制方式,In Memory、Database、File,建议采用 In Memory的方式。
c)负载均衡算法
WebLogic Server的负载均衡算法目前主要有:
Round-robin、Weight-base、Random、Parameter-based routing
Round-robin是默认算法,可以根据需要调整
3、EOS配置
基于EOS 开发的产品需要以同样的方式部署到 WebLogic 集群的每个实例上,建议每个实例的环境配置,文件路径相同,以便于管理。
对开发资源进行热更新和部署的时候,需要通过EOS Console对每台实例进行部署。
EOS为提高性能,会对一些数据进行缓存。在Cluster环境下,需要在缓存更新的时候,通知其他Seever。因此需要在 eosconfig.xml 中添加配置,例如:
<module name="cluster">
<group name="config">
<configValue key="nodeList">192.168.1.2;192.168.2.3</configValue>
</group>
</module></MODULE>
多台Server IP地址以 分号 分割,EOS Server根据这里的配置进行通知。