最近工作上接到一个需求,需要一个Weblogic双节点的环境,仅此记录一下搭建过程,以及遇到的一些问题。
Weblogic简单介绍
WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。
术语 | 解释 |
---|---|
domain | 是一个逻辑相关的WebLogic Server组成的一个组 |
Weblogic.Server | 是执行在JVM上的。(可以理解为有主方法的一个java类 |
Admin Server | 是一个domain的中心控制台。通过网页访问,管理domain |
Managed Server | 主要运行业务程序 |
Node Server | 节点服务器,对应Weblogic里的Machine |
Cluster | 是weblogic集群 |
Weblogic Cluster部署
Weblogic下载及安装环境配置
- Weblogic下载:https://www.oracle.com/middleware/technologies/fusionmiddleware-downloads.html
选择“适用于 Windows、Linux、MAC OS X 的快速安装程序”,会下载一个zip压缩包,里面是一个fmw开头的jar包。 - 在服务器环境为Weblogic创建用户及用户组,安装并配置Java环境
# 创建用户组 groupadd weblogic # 创建用户并指定该用户所属用户组以及为此用户在home目录下创建用户目录 useradd -m -g weblogic weblogic
3.上传zip包并解压到weblogic用户目录下
4.在weblogic用户目录下创建wls.rsp文件并编辑配置
此文件是静默安装的响应文件,作用主要是配置自动安装程序中的配置选项,从而达到静默安装的目的。touch wls.rsp cat <<EOF > wls.rsp [ENGINE] # DO NOT CHANGE THIS. Response File Version=1.0.0.0.0 [GENERIC] # The oracle home location. This can be an existing Oracle Home or a new Oracle Home # 安装路径 ORACLE_HOME=/home/weblogic/Oracle/Oracle_Home # Set this variable value to the Installation Type selected. e.g. WebLogic Server, Coherence, Complete with Examples. # 安装类型 INSTALL_TYPE=WebLogic Server # Provide the My Oracle Support Username. If you wish to ignore Oracle Configuration Manager configuration provide empty string for user name. MYORACLESUPPORT_USERNAME= # Provide the My Oracle Support Password MYORACLESUPPORT_PASSWORD= # Set this to true if you wish to decline the security updates. Setting this to true and providing empty string for My Oracle Support username will ignore the Oracle Configuration Manager configuration DECLINE_SECURITY_UPDATES=true # Set this to true if My Oracle Support Password is specified SECURITY_UPDATES_VIA_MYORACLESUPPORT=false # Provide the Proxy Host PROXY_HOST= # Provide the Proxy Port PROXY_PORT= # Provide the Proxy Username PROXY_USER= # Provide the Proxy Password PROXY_PWD= # Type String (URL format) Indicates the OCM Repeater URL which should be of the format [scheme[Http/Https]]://[repeater host]:[repeater port] COLLECTOR_SUPPORTHUB_URL= EOF
- 在weblogic用户目录下创建oraInst.loc文件并编辑
此文件主要用于指示Oracle Inventory的位置,Oracle Inventory 是一个中央存储库,用于跟踪所有 Oracle 软件安装的信息。touch oraInst.loc cat <<EOF > oraInst.loc inst_group=weblogic inventory_loc=/home/weblogic/oraInventory EOF
Java环境配置
- Oracle Java 11下载:https://www.oracle.com/java/technologies/downloads/#java11-linux
目前Weblogic Server支持Java1.8、Java11版本 - 上传并安装Java RPM安装包
sudo dnf install jdk-11.0.24_linux-x64_bin.rpm
- 确定系统默认Java环境版本
alternatives --config java
Weblogic 快速安装
- 执行jar快速安装程序,并指定配置文件
java -jar fmw_14.1.1.0.0_wls_lite_quick_generic.jar -responseFile /home/weblogic/wls.rsp -invPtrLoc /home/weblogic/oraInst.loc ORACLE_HOME=/home/weblogic/Oracle_Home
Weblogic domain快速配置
- 修改basicWLSDomain.py文件,该文件位于Weblogic安装目录下的./wlserver/common/templates/scripts/wlst目录内。
# 管理AdminServer的监听地址和端口 cd('Servers/AdminServer') set('ListenAddress','localhost') set('ListenPort', 7001) # 创建SSL配置并启用SSL端口 create('AdminServer','SSL') cd('SSL/AdminServer') set('Enabled', 'True') set('ListenPort', 7002) #======================================================================================= # Define the user password for weblogic. #======================================================================================= # 设置Weblogic的用户名和密码 cd('/') cd('Security/base_domain/User/weblogic') cmo.setPassword('value') # Please set password here before using this script, e.g. cmo.setPassword('value') #======================================================================================= #Create a JMS Server. #======================================================================================= # 创建JMS服务器 cd('/') create('myJMSServer', 'JMSServer') #======================================================================================= # Create a JMS System resource. #======================================================================================= # 创建JMS系统资源 cd('/') create('myJmsSystemResource', 'JMSSystemResource') cd('JMSSystemResource/myJmsSystemResource/JmsResource/NO_NAME_0') #======================================================================================= # Create a JMS Queue and its subdeployment. #======================================================================================= # 创建JMS队列及其子部署 myq=create('myQueue','Queue') myq.setJNDIName('jms/myqueue') myq.setSubDeploymentName('myQueueSubDeployment') cd('/') cd('JMSSystemResource/myJmsSystemResource') create('myQueueSubDeployment', 'SubDeployment') #======================================================================================= # Create and configure a JDBC Data Source, and sets the JDBC user. #======================================================================================= # 创建并配置JDBC数据源,并设置JDBC用户 cd('/') create('myDataSource', 'JDBCSystemResource') cd('JDBCSystemResource/myDataSource/JdbcResource/myDataSource') create('myJdbcDriverParams','JDBCDriverParams') cd('JDBCDriverParams/NO_NAME_0') set('DriverName','org.apache.derby.jdbc.ClientDriver') set('URL','jdbc:derby://localhost:1527/db;create=true') cd('/JDBCSystemResource/myDataSource/JdbcResource/myDataSource') create('myJdbcDataSourceParams','JDBCDataSourceParams') cd('JDBCDataSourceParams/NO_NAME_0') set('JNDIName', java.lang.String("myDataSource_jndi")) cd('/JDBCSystemResource/myDataSource/JdbcResource/myDataSource') create('myJdbcConnectionPoolParams','JDBCConnectionPoolParams') cd('JDBCConnectionPoolParams/NO_NAME_0') set('TestTableName','SQL SELECT 1 FROM SYS.SYSTABLES') #======================================================================================= # Target resources to the servers. #======================================================================================= # 将资源目标指向服务器 cd('/') assign('JMSServer', 'myJMSServer', 'Target', 'AdminServer') assign('JMSSystemResource.SubDeployment', 'myJmsSystemResource.myQueueSubDeployment', 'Target', 'myJMSServer') assign('JDBCSystemResource', 'myDataSource', 'Target', 'AdminServer') #======================================================================================= # Write the domain and close the domain template. #======================================================================================= # 写入域并关闭模板 setOption('OverwriteDomain', 'true') # 域目录配置及域名 writeDomain('/home/weblogic/Oracle_Home/wlserver/../user_projects/domains/basicWLSDomain') closeTemplate() #======================================================================================= # Exit WLST. #======================================================================================= exit()
- 运行domain快速配置
cd Oracle_Home/wlserver/common/bin/ ./wlst.sh ../templates/scripts/wlst/basicWLSDomain.py
Weblogic AdminServer、Weblogic NodeServer启动停止
1.进入Weblogic Server bin目录找到相关sh脚本并后台运行即可
cd /home/weblogic/Oracle_Home/user_projects/domains/basicWLSDomain/bin
# 后台启动Weblogic AdminServer
nohup ./startWebLogic.sh &
# 后台启动Weblogic NodeServer
nohup ./startNodeManager.sh &
# 关闭Weblogic AdminServer
./stopWebLogic.sh
# 关闭Weblogic NodeServer
./stopNodeManager.sh
Weblogic AdminServer相关配置
添加Node Server并启用Managed Server
- 进入Web console,http://ip:7001 or https://ip:7002 添加计算机
- 点击新建,命名新建计算机名称,点击下一步,输入监听地址以及端口,完成Node Server导入。监听地址需要注意,如果Node Server与AdminServer在同一宿主机内,需要填写localhost,如果在其他服务器,需要填写服务器实际IP地址,否则可能会出现SSL主机名不一致导致无法检测到目标Node Server。
- 点击左侧域结构内的环境菜单内的服务器二级菜单。点击右侧新建,进行新建服务器操作。
- 输入服务器名称以及服务器监听地址及端口,点击下一步确定配置信息,点击完成。然后,点击刚才新创建的服务器。
配置该服务器需要绑定的计算机以及根据需求打开SSL监听端口,保存设置。
- 点击控制标签页,选择新建的服务器,点击启动按钮,启动服务器。
添加第二台Weblogic,组成集群
-
在第二台服务器上执行“Weblogic AdminServer部署”全部步骤。
-
在第一台服务器上导出Weblogic集群配置
# domain参数指定要打包的WebLogic域的完整路径 # template参数指定生成的模板文件的路径 # managed参数指定生成的模板是否用于远程机器上的管理服务器 # template_name参数指定模板的描述性名称,需要用引号括起来 cd /home/weblogic/Oracle/oracle_common/common/bin ./pack.sh -domain=/home/weblogic/Oracle_Home/user_projects/domains/basicWLSDomain/ -template=/home/weblogic/basicWLSDomain.jar -managed=true -template_name="basicWLSDomain"
-
将导出的jar包复制到第二台服务器上,并执行unpack将集群配置导出
cd /home/weblogic/Oracle/oracle_common/common/bin ./unpack.sh -domain=/home/weblogic/Oracle/user_projects/domains/basicWLSDomain/ -template=/home/weblogic/Oracle/oracle_common/common/bin/basicWLSDomain.jar
-
更改Node Server的监听地址
cd /home/weblogic/Oracle/user_projects/domains/basicWLSDomain/nodemanager vi nodemanager.properties
ListenAddress=localhost 这个配置需要修改成服务器的真实IP地址,确保你的第一台的AdminServer可以访问到这个地址的5556端口。
-
启动第二台服务器的Node Server
cd /home/weblogic/Oracle/user_projects/domains/basicWLSDomain/bin nohup ./startNodeManager.sh &
-
进入第一台服务器的Web console,导入新的计算机以及创建新的服务器。导入计算机的时候需要注意监听地址是第二台服务器的地址。创建服务器的时候监听地址也是第二台服务器的地址。创建完成,即可启动第二台新创建的服务器。
建立Weblogic集群
- 进入AdminServer的Web console界面,新建集群
输入指定的集群名称后,点击确定保存配置 - 重新点击新创建的集群
- 点击上方服务器选项卡,准备添加服务器
添加几台服务器就重复执行以下几次步骤,服务器逐台添加
添加完成后点击最上方的保存
- 启动Weblogic集群
点击上方的控制选项卡
跳转到服务器实例列表,选中需要启动的服务器进行批量启动即可
Comments NOTHING