您的当前位置:首页正文

WebLogic集群配置方法

来源:化拓教育网
注意事项 1. 本文的WebLogic均配置在linux环境下,WebLogic版本10.3 2. 集群中管理服务器和被管服务器之间有用到IP组播UDP,所以这些服务器之间必须是UDP可以到达的 3. 动态IP的机器不能用于集群当中,集群中的WebLogic服务器必须位于同一个局域网中,不要把管理服务器设置在集群当中 4. 集群中的所有WebLogic 服务器必须使用相同的版本 5. 本文所配置的集群主要实现了web层次上的负载平衡和容错,也就是servlet和jsp,其他的j2ee组件如ejb,jdbc,jms等都可以集群化。 本例测试域的规划本例测试域的规划 Ip/port 202.0.0.111:9001 202.0.0.111:9011 202.0.0.110:9011 Server AdminServer Domain admin_domain 说明 管理服务器 被管服务器1 被管服务器2 Server111-wls admin_domain Server110-wls wls_domainM **被管服务器1所在domain与管理服务器相同,也可如被管服务器2一样独立配置 配置过程 1. 建立管理服务器建立管理服务器 通过终端登陆到202.0.0.111 进入/bea/wlserver_10.3/common/bin/目录 运行./config.sh 默认回车 默认回车 默认回车 选择2,修改密码 输入密码以后回车 选择3确认密码 输入密码以后回车 继续回车 输入2(生产模式)回车 这里JDK选择使用JRocket,输入1回车 选择调整参数,输入1回车 默认回车 输入3修改端口 输入应用启动的端口号(对于集群方式的Admin Server实际上是管理的端口号)回车 默认回车 默认回车 默认回车 默认回车 默认回车 默认回车 输入admin_domain回车 默认回车 在成功以后在/bea/user_projects/domains/下面建立了一个admin_domain的域。 2. 建立被管服务器建立被管服务器 以上成功以后,按照相同步骤在202.0.0.110服务器上建立被管理的域wls_domainM(注意端口和域名的区别)。 3. 配置、配置、启动管理服务器启动管理服务器 在AdminServer所在的域(admin_domain)下面建立一个boot.properties文件。 该文件的内容包含以下两行,用户和密码即为新建domain时的用户密码: username=weblogic password=weblogic 保存退出 进入admin_domain下的bin目录,运行 nohup sh startWebLogic.sh > nohup.out &,观察nohup.out文件,等待成功启动 4. 配置集群 打开浏览器,登录管理控制台,在本例中为http://202.0.0.111:9001/console 1) 新建Machine 选择左侧Domain Structure中的Environment/Machines,然后点击上面的Lock&Edit 点击右边的New 将机器名改为Machine110-wls点击OK 点击New建立另外一台被管理的机器Machine111-wls,完成以后如下。 2) 新建Clusters 点击左侧Domain Structure中的Environment/Clusters 点击New,name输入Cluster-wls,点击ok、Activate Changes 3) 新建Servers 点击左侧Domain Structure中的Environment/Servers 点击New 输入Server Name:Server110-wls 输入Server Listen Address:202.0.0.110 输入Listen Port:9011 ,选择上一步新建的**记得选中『Yes, make this server a member of an existing cluster.』Cluster:Cluster-wls 点击Next,点击Finish 同理建立被管服务器Server111-wls,完成以后如下: 点击Lock&Edit,点击Server列表中Server110-wls上的超链接,将Machine选择为Machine110-wls,保存 同理,修改Server111-wls,将Machine选择为Machine111-wls,完成后的server如下: 5. 启动被管服务器 1) 启动Server111-wls 通过终端登陆到202.0.0.111,进入/bea/user_projects/domains/admin_domain/bin 运行以下命令: ./startManagedWebLogic.sh Server111-wls http://202.0.0.111:9001,如果从被管服务器启动,在启动过程中需要输入上面设置的用户名和密码,启动成功以后显示如下: 2) 启动Server110-wls 通过终端登陆到202.0.0.110,进入/bea/user_projects/domains/wls_domainM/bin 运行以下命令: ./startManagedWebLogic.sh Server110-wls http://202.0.0.111:9001,如果从被管服务器启动,在启动过程中需要输入上面设置的用户名和密码,启动成功以后显示如下: 大功告成。当所有的应用正常启动以后点击Servers菜单应该显示如下图,所有Server的state为RUNNING状态,Health为OK: 为了避免被管理的Weblogic在每次启动的时候都要输入密码,需要做如下操作: 在本例中 进入/bea/user_projects/domains/wls_domainM/servers/Server110-wls目录,建立一个security(小写)的目录,进入该目录,编辑一个boot.properties文件,该文件的用户名和密码以上AdminServer的用户名和密码。然后就可以避免在每次启动的时候输入密码了。但是有时候Weblogic在启动的时候会报用户名和密码错误,这时候需要把这个文件删除重新建立一个即可。 附录 1. 内存参数修改 通过ssh方式用weblogic用户登录服务器,进入domain目录下的bin目录,拷贝startWebLogic.sh、setDomainEnv.sh文件为startWebLogicM.sh、setDomainEnvM.sh。 **被管server与管理server在同一domain下需要拷贝文件(如上的Server111-wls),如被管server在独立的domain中则直接修改文件即可 使用vi命令修改startManagedWebLogic.sh 将该文件最后的两行中的startWebLogic.sh修改为startWebLogicM.sh 使用vi命令修改startWebLogicM.sh文件 将setDomainEnv.sh修改为setDomainEnvM.sh 使用vi命令修改setDomainEnvM.sh文件 修改heap 内存的范围值及permsize 使用chmod命令修改如下三个文件的读写权限,完成 2. 建立代理服务器 建立了集群以后,集群的负载平衡功能还需要代理(proxy)来实现。目前我所知道的Weblogic支持几种类型的代理: 󰂾 HttpClusterServlet的代理,这个代理是weblogic公司编写的一个servlet,把它部署在一个weblogic服务实例上,就可以实现负载平衡和容错了。 󰂾 IIS 代理,用IIS作为前段的http的代理,需要往IIS中装一个插件 󰂾 Netscape/iPlanet代理,需要装插件 󰂾 Apache代理,用Apache作为http代理,需要装插件。 󰂾 硬件负载均衡,如使用radware等 当然,实际应用中可能更加复杂,可能会这样: 集群 Web服务器/WLS插件 硬件负载平衡器 Weblogic Server Client Web服务器/WLS插件 Weblogic Server 数据库 Web服务器/WLS插件 防火墙 防火墙 Weblogic Server 使用HttpClusterServlet作为代理 见proxy.war包,这个应用里面什么也不用有,只需要配置web.xml和weblogic.xml就可以。其中web.xml文件中WebLogicCluster的参数设置为要做代理的ip:port(202.0.0.110:9011|202.0.0.111:9011)。 将proxy.war包发布到AdminServer(也可在console上新建一个Server,该server 不要放到集群中,将proxy.war包发布到该server),记得target选择AdminServer: 发布应用(jbgc.jar),target应选择Cluster-wls (datasource也应选择Cluster-wls),使用浏览器访问http://202.0.0.111:9001/jbgc,能够正常访问说明代理配置成功。 3. 集群内session共享配置 要使发布到集群上的web应用启用session共享,必须在应用的WEB_INFO/weblogic.xml文件中加入如下内容: PersistentStoreType replicated 4. 疑难问题 a. 启动server时报用户密码错误 有时启动server时会无故报密码错误,此时可删除boot.propertis文件后重建,如仍报错可删除domain目录/servers/server名整个目录,然后前台启动后新建boot.propertis文件,直至删除domain后重建 b. 集群中发布的应用无法stop、delete Down掉所有server后,修改管理domain目录下config目录下的config.xml文件,将发布的应用配置删除之后重启server即可 c. 启动server时报BEA-000386 NumberFormatException(EmbeddedLDAP)错 这种问题是服务器非正常shutdown时引起文件损坏,直接将domain目录/servers/AdminServer/data/ldap/conf下的replicas.prop删除 d. 启动server时报 java.lang.ClassCastException: com.octetstring.vde.backend.BackendRoot错,这是使用root用户启动WebLogic所致, 查看domain目录/servers/AdminServer/data/ldap/ldapfiles下的EmbeddedLDAP.tran文件,是否其owner被改为root,chown该文件即可 e. 添加数据库驱动 将驱动jar包放置到/bea/wlserver_10.3/server/lib下,startWebLogic.sh文件的CLASSPATH参数添加jar包 如CLASSPATH=\"${WL_HOME}/server/lib/ojdbc14.jar${SAVE_CLASSPATH}\" f. 集群中配置的jdbc数据源,其Targets属性应选择” All servers in the cluster”这一项(DBMS authentication安全验证使用的数据源Targets属性要选择” AdminServer”) g. 集群中发布的应用程序, 其Targets属性应选择” All servers in the cluster”这一项(负载均衡用的proxy应用应该发布在集群之外,Targets属性要选择” AdminServer”)

因篇幅问题不能全部显示,请点此查看更多更全内容