此次以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即调整完毕。