基于WebLogic Server的ALSR集群配置
来源:互联网 发布:tk域名注册官网 编辑:程序博客网 时间:2024/06/10 13:05
时间:2008-01-30
作者:周警伟
浏览次数: 23
本文关键字:SOA , SOA治理,WebLogic Server, AquaLogic Service Registry 文章工具
推荐给朋友
打印文章
前言
Aqualogic Service Registry(以下简称ALSR)是Service Oriented Architecture (SOa) 的重要组成部分,是SOA治理(Governance) 和服务生命周期管理的基础。 ALSR完全符合UDDI v3标准,在SOA体系架构中作为服务注册中心,可以被用来注册,发现和查找服务。
ALSR可以单独运行,也可以部署到J2EE应用服务器上,并能支持集群部署。由于ALSR设计为与应用服务器独立,因此在移植到某特定应用服务器上时需要做一些修改和配置。 本文就是介绍了如何将ALSR部署到基于WebLogic Server的集群上。
基于WebLogic Server的ALSR集群配置
假设:
- 两台机器组成集群,hostname分别是jizhou01和publictesting;
- 数据库使用MS SQL Server2005;
- 使用WebLogic Server 9.2(可以使用WebLogic Server 8.1 sp5以上版本,WebLogic Server 9.x)
- 外部访问URL:http://jizhou01:7021/discovery/uddi/web
说明:以ALSR Discovery Registry配置集群为例
- Balancer 为域管理节点(非集群节点),负责负载均衡和代理转发请求
- Configuration Manager: 集群被管理节点,负责集群各个节点的配置与数据同步,保持数据的一致性,这里以jizhou01上的manager节点为Configuration Manager
- Configuration listener: 集群被管理节点,可以配置多个,这里只以listener1节点为例,运行在publictesting机器上
具体步骤:
安装ALSR3.0:
a) 选择使用WebLogic应用服务器作为部署平台;
b) 选择合适的数据库;注意集群部署方式不要使用默认自带的数据库,本例使用MS SQLServer2005;
c) 安装时选择适当的Registry模式,本例只安装discovery类型的Registry, 因此上下文就使用discovery;
d) 安装时不要选择“安装后部署”选项;否则将部署到域管理节点上,如果不需要集群,则可以选择此项;
e) 安装结束后在%Registry%/conf/porting/weblogic/build下会生成discovery.war。该文件需要进行配置修改,因此在build目录下创建文件夹discovery,使用winzip或jar工具将discovery.war内容解压缩到discovery目录下
说明:只需在管理节点安装,集群其他机器上没有必要再安装。
配置正确后的ALSR,运行时是一个基于标准的web应用,非常方便管理。
创建WebLogic Server Domain:
a) 管理节点为AdminServer, 启用SSL,监听端口为7022, 常规监听端口为7021
b) 添加被管理节点manager, listener1;分别启用SSL, 监听端口为7032, 常规监听端口为7031;注意集群软件代理(proxy)需要使用管理节点,不再单独配置,也可使用硬件负载均衡如F5代替
c) 创建集群mycluster, 将manager, listener1添加到集群, 集群地址 http://jizhou01:7031,http://publictesting:7031
d) 将所需数据库的JDBC Driver添加到Classpath,可以在Domain的bin目录下的setDomainEnv.cmd或setDomainEnv.sh中设置;注意集群中所有节点都需要添加驱动
e) 验证集群配置正确;对集群部署还不熟悉的,可以参考部署BEA自带的例子weblogic92/samples/server/examples/src/examples/cluster/sessionrep/inmemrep
f) 注意,不要使用默认的集群多播地址和端口,以免和其他人配置的多播地址与端口冲突。
安全配置:
a) 通过IE浏览器访问集群的被管理节点获得集群节点的证书,将其保存为Base64格式的*.cer文件。如图:
b) 在%Registry%/conf/porting/weblogic/build/discovery/conf下有配置文件pstore.xml,需要将集群中所有节点的证书导入到该文件;该文件中的证书作为应用的可信证书,可以使用如下面的命令:
PStoreTool add -config %pstore_path%/pstore.xml -certFile [ 证书文件名]
其中pstore_path=%Registry%/conf/porting/weblogic/build/discovery/conf
注意将%beahome%/weblogic92/server/lib下的CertGenCA.der也添加到pstore.xml中,因为其是节点证书的签发CA证书。在生产环境中,也需要将CA证书导入到该pstore.xml中
c) 注意安装后有文件%Registry%/conf/jaas.config, 将该文件复制到所有节点的domain目录下,然后在setDomainEnv脚本加入(可以在第一行)
Set JAVA_OPTIONS=-Djava.security.auth.login.config= %domain%/jaas.config
日志文件配置:
a) 修改%Registry%/conf/porting/weblogic/build/discovery/conf下的log4j.config文件中日志文件地址正确,如果指定文件夹不存在会抛异常。确保集群中所有节点的日志文件地址指向相同结构的文件夹。
配置应用
a) 配置discovery/app/uddi/conf/configurator.xml,按照集群节点设计修改该配置文件
参考如下:manager为jizhou01, listener为publcitesting, publication registry的ip为192.168.1.2;
<?xml version="1.0" encoding="UTF-8"?>
<config name="configurator" savingPeriod="5000" local="true">
<configManagerUrls>
<url>https://jizhou01:7032</url>
<managerServiceUrlPath>/discovery/uddi/configuratorManager</managerServiceUrlPath> <managerConfiguratorUrlPath>/discovery/uddi/configurator</managerConfiguratorUrlPath>
</configManagerUrls>
<IPFilter name="configuratorFilter">
<subnet IPAddress="192.168.1.2" subnetMask="255.255.255.255"/>
</IPFilter>
<configManager cluster="true" resendInterval="300">
<configuratorListeners>
<configuratorListener>
https://publictesting:7032/discovery/uddi/configuratorListener
</configuratorListener>
</configuratorListeners>
</configManager>
<UDDIInterceptorChain name="configuratorApiChain">
</UDDIInterceptorChain>
<UDDIInterceptorMapping>
<mapping UDDIInterceptorChainName="configuratorApiChain" UDDIServiceInterface="org.systinet.uddi.configurator.ConfiguratorApi"/>
</UDDIInterceptorMapping>
</config>
b) 配置discovery/app/uddi/conf/ database.xml ,该文件为数据库驱动配置。安装ALSR时会提示你输入数据库信息,确保用户名密码输入正确,该密码会被加密保存在该文件;其他信息如数据库IP, 数据库名称,端口等都可以安装后再修改。如果默认配置的数据库URL不合适,也可以手动修改,如配置为oracle rac ,使用thin driver:
oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=yes)(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.1)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.2)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)))
修改默认连接池配置,适应实际环境需要
c) 配置discovery/app/uddi/conf/ web.xml, 按照集群实际需求配置入口地址,安全入口地址等;默认会把集群管理节点作为入口地址,如果需要配置不同的负载均衡器地址,则修改相应部分。也可以到registry 控制台来修改。如下图:
c) 将%Registry%/conf/porting/weblogic/build/discovery下的内容打包成discovery.war,将其部署到集群的被管理节点上。
配置软件负载均衡应用
a) 在%Registry%下创建文件夹balancer,其下在创建WEB-INF, 添加web.xml和weblogic.xml。按照实际需要修改下列文件。
web.xml样例:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>HttpClusterServlet</servlet-name>
<servlet-class>weblogic.servlet.proxy.HttpClusterServlet</servlet-class>
<init-param>
<param-name>WebLogicCluster</param-name>
<param-value>jizhou01:7031|publictesting:7031</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>FileServlet</servlet-name>
<servlet-class>weblogic.servlet.FileServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FileServlet</servlet-name>
<url-pattern>/discovery/uddi/webdata*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>FileServlet</servlet-name>
<url-pattern>/discovery/uddi/bsc/webdata*</url-pattern>
</servlet-mapping>
</web-app>
Weblogic.xml样例:
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN"
"http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
<weblogic-web-app>
<context-root>/discovery</context-root>
</weblogic-web-app>
b) 在balancer目录下创建build.bat, 内容如下:
set JAVA_HOME=C:/bea/esb26rp1/jdk150_10
set REGISTRY_HOME=D:/ALSR3/Discovery
set path=%JAVA_HOME%/bin;%path%
mkdir uddi
mkdir uddi/bsc
cd uddi/bsc
jar xvf %REGISTRY_HOME%/app/uddi/bsc.jar webroot
rename webroot webdata
cd ..
jar xvf %REGISTRY_HOME%/app/uddi/web.jar webroot
rename webroot webdata
cd ..
jar cvf balancer.war *
rmdir /S /Q uddi
echo done
运行该命令,可以得到balancer.war, 将其部署到管理节点上。
说明:该war文件为负载均衡的软件代理,基于weblogic的weblogic.servlet.proxy.HttpClusterServlet,配置了集群地址jizhou01:7031|publictesting:7031。如果要使用其他负载均衡代替HttpClusterServlet(如F5),只需将该应用根下的uddi目录合并到discovery应用的根下即可。
验证安装配置正确
a) 启动域管理节点,其上部署了balancer.war
b) 启动集群被管理节点manager,其上部署了discovery.war
注意启动时因为SSL端口还没有建立,所以抛一个连接异常属正常现象,等服务器监听端口就绪后即会自动注册,如上图所示。
c) 启动被管理节点 listener1, 其上部署了discovery.war
d) 通过入口地址:https://jizhou01:7022/discovery/uddi/web 访问registry, 登录后做一些修改,可以看到所做修改在集群所有节点都得到了应用。
总结
通过配置ALSR的集群,即得到了ALSR的UDDI功能,又可以借助WebLogic的集群提高系统的吞吐量和可靠性,并实现负载均衡。通过ALSR,可以在运行时查询服务,控制服务的完整性(如安全,策略),可以定义服务发布审批流程,对服务进行精确的安全控制,并有基于浏览器的控制台。还可以通过在BEA ALSB(ESB)中配置UDDI,实现业务服务总线和UDDI注册中心的服务同步。基于UDDI标准的ALSR为企业的IT向更规范的SOA环境转换,提高SOA治理能力奠定了坚实的基础。
作者简介 周警伟是(dev2dev ID: zhoujw) BEA系统(中国)有限公司 售前技术顾问作者其它文章
- MVC在Web系统中的模式与应用
- 基于ESB的MQ连接方案
- 基于WebLogic Server的ALSR集群配置
- 配置WebLogic Server集群
- 配置WebLogic Server集群
- WebLogic Server 集群的配置示例
- 配置WebLogic Server集群二
- 配置WebLogic Server集群(转)
- 配置WebLogic Server 9.2集群
- Linux下配置WebLogic Server集群
- Linux下配置WebLogic Server集群(转载)
- Windows下WebLogic Server集群配置
- Linux下配置WebLogic Server集群(转载)
- weblogic的集群与配置
- weblogic的集群与配置
- weblogic的集群与配置
- weblogic的集群与配置
- weblogic的集群与配置
- weblogic的集群与配置
- weblogic的集群与配置
- IE的getElementById……
- Serv-U 6.X 的提权脚本
- [GearMaster开发]游戏地图编辑器的参考和骨骼动画的错误
- VC6.0:Setup was unable to create a DCOM user account
- 网络安全相关书籍推荐zz
- 基于WebLogic Server的ALSR集群配置
- 面向服务架构—SOA
- 下一代系统核心平台
- Web Service实现的关注点分离
- 给一个Dialog连接一个新类时总出错,说contain remnants of that class
- 利用正则表达式验证email地址的合法性
- ssh配置顺序
- 嵌入式中自己编译gdb和gdbserver工具
- MM--关于Material Management的自动抛帐