weblogic多机多节点部署参考实例


此次以10.128.22.21和10.128.22.22两台服务器为例,来描述应用部署的步骤。并以10.128.22.21:7001作为管理服务器

主管服务器相关配置

创建domain

/home/weblogic/weblog10/wlserver_10.3/common/bin/config.sh

执行 config.sh

选择创建新的weblogic域

选择weblogic Platfrom 组件

选择要使用的模板这里直接点击下一步即可

输入需要创建的domain的名称(主管服务器和受管服务器名称建议一致)

选择默认位置

根据提示输入用户口令并进行确认

根据需要选择开发模式或者生产模式这里选择生产模式

选择预先设置好的JDK

下一步根据提示创建好domain

启动weblogic服务

/home/weblogic/weblog10/userprojects/domains/tpcenterdomain

执行 startWebLogic.sh

此时需要根据提示输入之前设置的weblogic用户名和密码,密码输入正确则可以正常启动

成功启动weblogic服务之后进入

/home/weblogic/weblog10/userprojects/domains/tpcenterdomain/servers/AdminServer

目录下创建security文件夹并在文件夹中写入boot.properties

username=XXXXX

password=xxxxxx

之后重新启动weblogic服务,系统会自动读取boot.properties并对用户名和密码进行加密,后续启动无需手动输入weblogic用户名密码

新建server

登录domain的控制台,查看环境->服务器

点击新建按钮新建Server2101

*如果涉及其他电脑访问 ,请将127.0.0.1改成部署电脑的ip地址

输入规划的服务器名称Server2101,地址、监听端口,点击“完成”返回服务器列表页面,如下图所示

新建集群

新建集群,并添加服务器:在控制台选择“集群”->“新建”,如下图所示

新建成功后返回集群列表页面如下图所示

点击列表中的cluster链接,打开集群配置界面,选择“配置”->服务器,如图所示

点击添加按钮将Server2101添加到集群中

新建计算机

在控制台选择“计算机”->“新建”,如下图所示

修改“监听地址”为127.0.0.1(如果涉及其他电脑访问,请将127.0.0.1改成部署电脑的ip地址),其它保持不变,点击“完成”,如图所示

新建成功,返回计算机列表界面,如图所示

点击172.31.22.21 点击配置->服务器点击添加按钮,将Server2101添加到计算机172.21.22.21中

后续server可根据具体需要判断是否选择克隆server,这里由于server属性相同,可选中Server2101点击克隆(如不符合克隆条件,可参考以上创建步骤进行创建server)

这里根据需要克隆出Server2102、Server2103、Server2104端口号分别为8002、8003、8004

至此,服务器、集群、计算机都已经配置成功,选择“环境”-》服务器,最后结果如图所示

启动server

/home/weblogic/weblog10/userprojects/domains/tpcenterdomain/bin

执行

sh startManagedWebLogic.sh Server2101 http://172.31.22.21:7001

根据提示输入用户名密码并在对应server文件夹下建立boot.properties

启动节点管理器服务

/home/weblogic/weblog10/wlserver_10.3/server/bin

执行startNodeManager.sh

执行后,可以看到 /home/weblogic/weblog10/wlserver_10.3/common/nodemanager路径下 文件夹nodemanager创建了如图以下文件

关闭node服务并对node服务进行配置主要确保以下属性配置正确

StartScriptEnabled=true

ListenAddress=127.0.0.1(*如果涉及多台电脑访问,此处设置成部署电脑的ip地址这里配置172.31.22.21)

StartScriptName=startWebLogic.sh

配置完成之后执行startNodeManager.sh (nohup启动)

忽略主机签名验证

在控制台中选择环境->服务器->AdminServer->配置->SSL,主机签名验证选择无,如下图所示:

点击“高级”,选择“主机名验证”为“无”,点击“保存” 同理,依次设置其他server的SSL主机名验证为“无”

因为主机名验证,需要重启后才生效,否则server与节点管理器之间的SSL握手不成功,节点管理器日志会报错,因此一定要重启weblogic服务

Weblogic服务启动完毕之后登陆控制台启动

Server2101、Server2102、Server2103、Server2104

受管服务器相关配置

根据以上步骤创建domain 并新建所需server 此处不再赘述(主机2 作为受管服务器域名要和管理服务器域名及路径一致)

在管理服务器中配置受管服务器如下图

主管服务器配置

创建受管服务器对应的计算机如下图

该计算机对应的为受管服务器计算机需要将通信类型修改为普通

在该受管计算机中添加受管服务器

受管服务器配置

在受管服务器主机中使用 wlst 工具从管理服务器中同步节点管理器机密文件

(nm_password.properties) SerializedSystemIni.dat

更新/nodemanager 目录下 nodemanager.domains 文件中的域信息。

操作命令如下:

设置 wlst 环境变量:

/home/weblogic/weblog10/wlserver_10.3/server/bin

setWLSEnv.sh

执行 wlst 工具

/home/weblogic/weblog10/wlserver_10.3/common/bin

wlst.sh

在 wls:/offline>中输入 connect 命令, 连接管理服务器, t3 为 weblogic 协议不可修改:connect

('管理服务器用户名','管理服务器密码','t3://管理服务器 ip:端口')

提示如下信息

connect ('weblogic','weblogic@2017','t3://172.31.22.19:7001')

在 wls:/offline>中输入 nmEnroll 命令,从管理服务器中下载文件:

nmEnroll([domainDir], [nmHome])

domainDir :保 存 节 点 管 理 器 的 机 密 文 件 (nm_password.properties) 和SerializedSystemIni.dat 文件的域目录的路径

nmHome:节点管理器主目录的路径

nmEnroll('/home/weblogic/weblog10/userprojects/domains/ydpicdomain/','/home/weblogic/weblog10/wlserver_10.3/common/nodemanager/')

退出 wlst 工具命令:exit()

在 受 管 服 务 器 中 , 修 改 nodemanager.properties 启 动 配 置 文 件 , 路 径 为

/wlserver_12.1/common/nodemanager/nodemanager.properties

修改如下内容

ListenAddress=为本机 ip 地址

ListenPort=节点管理器监听端口

SecureListener=false

在受管服务器主机中启动节点管理器,节点管理器启动

在管理控制台关联受管服务器对应的应用,启动即可。

项目部署

进入weblogic管理界面点击部署 安装

找到对应的项目路径

下一步

选择需要部署的server

配置部署信息

源可访问性需要修改为,以提供所有目标将访问此应用程序文件的位置。这通常是一个共享目录。必须确保应用程序文件存在于此位置, 且每个目标都可以访问此位置。

点击完成

点击激活更改

查看部署状态

数据源配置

进入weblogic 管理界面点击 服务-数据源-新建

新建一般数据源

数据源名称可自定义,例如JDBCINTTEST

JNDI名称需和weblogic.xml中保持一致,建议JNDI名称和weblogic.xml 、web.xml中均保持一致。选择相应的数据库类型

以及对应的数据库驱动程序

根据数据库连接信息配置JDBC数据源,点击下一步点击测试配置可检测是否连接成功

选择数据源目标,可指向一个或多个server,也可以指向集群服务

数据源配置完毕之后点击激活更改完成数据源配置

相关编码配置

修改服务器编码

1、执行命令echo $LANG查看编码格式;

2、如果编码格式不是zhCN.gb18030,则使用命令vi .bashprofile,输入export LANG=zh_CN.gb18030;

3、执行. ./.bash_profile;

修改setDomainEnv.sh

在文件末尾增加

JAVAOPTIONS="${JAVAOPTIONS} -Dfile.encoding=gbk"

export JAVA_OPTIONS

如果遇到使用脚本启动不乱码使用weblogic*控制台启动乱码情况,需要在startWebLogic.sh* 中增加

CLASSPATH="${CLASSPATH}${CLASSPATHSEP}${MEDRECWEBLOGICCLASSPATH}"

export LCALL="zhCN.gb18030" 在脚本中设置字符集编码

Domain内存分配

1、admin server与manager server内存分配缺陷描述

Weblogic服务器一般会为每一个业务系统设计一个或多个域(domain),每一个域(domain)服务主体必须由Admin server和Manage Server两类Server组成,两类Server都需要占用一定的内存资源(人工配置),Manage Server负责运行业务,Admin Server则只负责管理Manage Server,只是在启动Weblogic和需要调整Weblogic配置时才使用,启动Weblogic后,Admin Server关闭也不影响业务的正常使用,所以Manage Server确实需要大内存支持,但Admin Server则只需要500MB左右内存来维持它开启着随时待命而已。

Admin server和Manage Server默认设计获取内存配置的方式为:共同调用WEBLOGIC安装目录bea/userprojects/domain/{domainname}/bin目录下的setDomainEnv.sh文件中的“MEM_ARGS”参数来获取内存大小,导致Admin server和Manage Server都获取到了相同大小的内存。

例如:因为业务的性能需要为Manage Server配置4GB内存,即在setDOMAINenv.sh文件中配置4GB的内存大小,

MEM_ARGS="-Xms4096m -Xmx4096m

这样,Manage Server确实可以获得4GB内存,但是,每个Domain(域)下面的Admin Server也同样获得了4GB,Admin Server在此浪费3.5GB内存,如果一个系统有多个Domain(域),或是一台服务器上部署有多套系统的Weblogic,浪费的内存总数则需相乘。

上述情况属于Weblogic设计与配置上存在的双重缺陷。

2、admin server与manager server内存分配缺陷带来的影响

(1)、多套系统共用服务器,以分别创建不同域的方式区分系统,或,一套系统,不同的模块分别以创建不同域来隔离模块服务的方式,形成了一台Weblogic服务器上创建了多个域的情况,每一个域必定有一个Admin Server,使得多个Admin server存在于同一台服务器上的现实情况,在大型公司中,由于中间件服务器数量的庞大,对硬件设备的浪费是惊人的。

(2)、在内存配置本身不富裕的系统中,浪费的大量内存使得系统性能急剧下降,甚至引起服务器停止响应与down机

(3)、由于Admin Server浪费了不必要的内存空间,原本可以将多套系统Weblogic共同部署于同一台服务器即可解决的,不得不再多配置一台服务器设备,不仅是硬件设备资源的浪费,还会加大运维人力资源的投入、电力资源的投入、机房空间资源的投入、网络设备资源的投入等等

3、优化策略

3.1内存获取方式架构设计优化调整

3.1.1优化前旧架构(默认)
3.1.2优化后新架构

3.2 内存获取配置代码调整

为每个DOMAIN(域)的bin目录下startWebLogic.sh文件,增加以下内容:

在 echo "JAVA Memory arguments:${MEM_ARGS}" 前面加入如下行:

if [ "${SERVERNAME}" = "AdminServer" ] ; then MEMARGS="-Xms512m -Xmx512m -XX:MaxPermSize=256m" fi

重启Weblogic即调整完毕。

你可能感兴趣的:(weblogic多机多节点部署参考实例)