WebLogic教程FG028-WebLogic集群与高可用性最佳实践
内容简介
本教程基于Oracle WebLogic Server 15c(15.1.1.0.0)官方文档,详细介绍WebLogic集群与高可用性的最佳实践,结合生产环境经验,帮助读者掌握WebLogic集群的配置和高可用性的实现方法。
风哥教程参考WebLogic官方文档集群指南、高可用性文档等相关内容,内容涵盖集群架构、负载均衡、故障转移、会话复制等方面。
本文档适用于WebLogic管理员和系统工程师,通过详细的步骤说明和实战操作,确保WebLogic集群的高可用性和稳定性。
目录大纲
Part01-基础概念与理论知识
1.1 集群概述
WebLogic集群是由多个WebLogic服务器实例组成的集合,这些服务器实例协同工作,提供高可用性和可扩展性。集群的主要特点包括:
- 可扩展性:通过添加服务器实例,提高系统的处理能力
- 高可用性:当一个服务器实例失败时,其他服务器实例可以继续提供服务
- 负载均衡:将请求分发到不同的服务器实例,平衡系统负载
- 会话复制:在不同的服务器实例之间复制会话数据,确保会话的连续性
WebLogic集群的类型包括:
- 静态集群:服务器实例数量固定,需要手动添加和配置
- 动态集群:服务器实例数量可以根据负载自动调整
学习交流加群风哥微信: itpux-com。
1.2 高可用性概述
高可用性是指系统在面对各种故障时,能够持续提供服务的能力。WebLogic高可用性的主要实现方式包括:
- 集群:通过多个服务器实例组成集群,提供冗余和容错能力
- 故障转移:当一个服务器实例失败时,将请求转移到其他服务器实例
- 会话复制:在不同的服务器实例之间复制会话数据,确保会话的连续性
- 负载均衡:将请求分发到不同的服务器实例,平衡系统负载
- 数据备份与恢复:定期备份数据,确保数据的安全性和可恢复性
1.3 集群架构
WebLogic集群的架构主要包括:
- 管理服务器(Admin Server):负责管理集群的配置和监控
- 受管服务器(Managed Server):运行应用的服务器实例
- 节点管理器(Node Manager):负责服务器实例的启动、停止和监控
- 负载均衡器:将请求分发到不同的服务器实例
- 数据库:存储应用数据和WebLogic配置数据
WebLogic集群的网络架构包括:
- 前端网络:用户访问的网络,连接负载均衡器
- 后端网络:服务器之间通信的网络,用于集群通信和会话复制
风哥提示:集群架构的设计直接影响系统的可用性和性能,需要根据应用的需求和硬件资源进行合理规划。
Part02-生产环境规划与建议
2.1 集群规划
WebLogic集群规划的主要内容:
- 集群规模:根据应用的负载和可用性要求,确定集群的规模
- 服务器配置:根据应用的需求,配置服务器的硬件和软件
- 网络规划:设计集群的网络架构,包括前端网络和后端网络
- 存储规划:规划存储设备,确保数据的安全性和可靠性
- 负载均衡规划:选择合适的负载均衡器,配置负载均衡策略
2.2 高可用性规划
WebLogic高可用性规划的考虑因素:
- 故障转移策略:制定故障转移的策略和流程
- 会话复制策略:选择合适的会话复制方式,如内存复制或数据库复制
- 监控策略:建立监控系统,及时发现和处理故障
- 备份策略:制定数据备份和恢复的策略
- 灾难恢复策略:制定灾难恢复的策略和流程
2.3 最佳实践建议
WebLogic集群与高可用性的最佳实践建议:
- 冗余设计:设计冗余的硬件和软件架构,提高系统的可用性
- 负载均衡:使用负载均衡器分发请求,平衡系统负载
- 会话复制:启用会话复制,确保会话的连续性
- 监控与告警:建立监控系统,及时发现和处理故障
- 定期测试:定期测试故障转移和恢复流程,确保系统的可靠性
- 文档化:文档化集群配置和高可用性策略,便于维护和故障处理
更多视频教程www.fgedu.net.cn
Part03-生产环境项目实施方案
3.1 集群配置
WebLogic集群配置的步骤:
1. 创建集群
cd /WebLogic/app/weblogic15c/oracle_common/common/bin
./wlst.sh
connect(‘weblogic’, ‘password123’, ‘t3://localhost:7001’)
edit()
startEdit()
# 创建集群
domain = cmo
cluster = domain.createCluster(‘fgeduHAcluster’)
cluster.setClusterMessagingMode(‘unicast’)
cluster.setWeblogicPluginEnabled(true)
save()
activate()
exit()
Welcome to WebLogic Server Administration Scripting Shell
Connecting to t3://localhost:7001 with userid weblogic …
Location changed to edit tree. This is a writable tree with No Root. This tree includes all the configuration that can be edited.
Starting an edit session …
Session started, be sure to save and activate your changes when you are done.
Saving all your changes …
Saved all your changes successfully.
Activating all your changes, this may take a while …
The edit lock associated with this edit session is released once the activation is completed.
Activation completed
Exiting WebLogic Scripting Tool.
2. 创建受管服务器
cd /WebLogic/app/weblogic15c/oracle_common/common/bin
./wlst.sh
connect(‘weblogic’, ‘password123’, ‘t3://localhost:7001’)
edit()
startEdit()
# 创建受管服务器
domain = cmo
cluster = domain.lookupCluster(‘fgeduHAcluster’)
# 创建server1
server1 = domain.createServer(‘server1’)
server1.setListenPort(8001)
server1.setCluster(cluster)
server1.setMachine(domain.lookupMachine(‘Machine1’))
# 创建server2
server2 = domain.createServer(‘server2’)
server2.setListenPort(8002)
server2.setCluster(cluster)
server2.setMachine(domain.lookupMachine(‘Machine2’))
save()
activate()
exit()
Welcome to WebLogic Server Administration Scripting Shell
Connecting to t3://localhost:7001 with userid weblogic …
Location changed to edit tree. This is a writable tree with No Root. This tree includes all the configuration that can be edited.
Starting an edit session …
Session started, be sure to save and activate your changes when you are done.
Saving all your changes …
Saved all your changes successfully.
Activating all your changes, this may take a while …
The edit lock associated with this edit session is released once the activation is completed.
Activation completed
Exiting WebLogic Scripting Tool.
3.2 负载均衡配置
WebLogic负载均衡配置的步骤:
1. 配置硬件负载均衡器
1. 登录F5 BIG-IP管理界面
2. 创建节点:
– 节点1:192.168.1.101:8001
– 节点2:192.168.1.102:8002
3. 创建池:
– 名称:fgeduPool
– 负载均衡方法:轮询
– 健康检查:HTTP
4. 创建虚拟服务器:
– 名称:fgeduVS
– IP地址:192.168.1.100
– 端口:80
– 关联池:fgeduPool
5. 保存配置
2. 配置WebLogic插件
cd /WebLogic/app/weblogic15c/wlserver/server/plugin/linux/x86_64
vi weblogic.conf
WebLogicCluster 192.168.1.101:8001,192.168.1.102:8002
Debug ON
WLLogFile /var/log/weblogic/plugin.log
MatchExpression *.jsp
MatchExpression *.html
MatchExpression *.do
MatchExpression *.action
3.3 故障转移配置
WebLogic故障转移配置的步骤:
1. 配置会话复制
cd /WebLogic/app/weblogic15c/oracle_common/common/bin
./wlst.sh
connect(‘weblogic’, ‘password123’, ‘t3://localhost:7001’)
edit()
startEdit()
# 配置会话复制
domain = cmo
cluster = domain.lookupCluster(‘fgeduHAcluster’)
cluster.setPersistentStoreType(‘replicated’)
# 配置服务器实例的会话复制
server1 = domain.lookupServer(‘server1’)
webAppContainer = server1.getWebAppContainer()
sessionDescriptor = webAppContainer.getSessionDescriptor()
sessionDescriptor.setPersistentStoreType(‘replicated’)
sessionDescriptor.setSessionTimeoutSecs(3600)
server2 = domain.lookupServer(‘server2’)
webAppContainer = server2.getWebAppContainer()
sessionDescriptor = webAppContainer.getSessionDescriptor()
sessionDescriptor.setPersistentStoreType(‘replicated’)
sessionDescriptor.setSessionTimeoutSecs(3600)
save()
activate()
exit()
Welcome to WebLogic Server Administration Scripting Shell
Connecting to t3://localhost:7001 with userid weblogic …
Location changed to edit tree. This is a writable tree with No Root. This tree includes all the configuration that can be edited.
Starting an edit session …
Session started, be sure to save and activate your changes when you are done.
Saving all your changes …
Saved all your changes successfully.
Activating all your changes, this may take a while …
The edit lock associated with this edit session is released once the activation is completed.
Activation completed
Exiting WebLogic Scripting Tool.
2. 配置健康监控
cd /WebLogic/app/weblogic15c/oracle_common/common/bin
./wlst.sh
connect(‘weblogic’, ‘password123’, ‘t3://localhost:7001’)
edit()
startEdit()
# 配置健康监控
domain = cmo
server1 = domain.lookupServer(‘server1’)
healthMonitoring = server1.getHealthMonitoring()
healthMonitoring.setEnabled(true)
healthMonitoring.setHealthCheckIntervalSeconds(30)
healthMonitoring.setMaxOverloadTimeSeconds(60)
server2 = domain.lookupServer(‘server2’)
healthMonitoring = server2.getHealthMonitoring()
healthMonitoring.setEnabled(true)
healthMonitoring.setHealthCheckIntervalSeconds(30)
healthMonitoring.setMaxOverloadTimeSeconds(60)
save()
activate()
exit()
Welcome to WebLogic Server Administration Scripting Shell
Connecting to t3://localhost:7001 with userid weblogic …
Location changed to edit tree. This is a writable tree with No Root. This tree includes all the configuration that can be edited.
Starting an edit session …
Session started, be sure to save and activate your changes when you are done.
Saving all your changes …
Saved all your changes successfully.
Activating all your changes, this may take a while …
The edit lock associated with this edit session is released once the activation is completed.
Activation completed
Exiting WebLogic Scripting Tool.
学习交流加群风哥QQ113257174
Part04-生产案例与实战讲解
4.1 集群配置实战
WebLogic集群配置的实战案例:
1. 启动集群
cd /WebLogic/fgdata/domains/fgedudomain/bin
./startWebLogic.sh
cd /WebLogic/fgdata/domains/fgedudomain/bin
./startManagedWebLogic.sh server1 t3://localhost:7001
cd /WebLogic/fgdata/domains/fgedudomain/bin
./startManagedWebLogic.sh server2 t3://localhost:7001
2. 验证集群状态
cd /WebLogic/app/weblogic15c/oracle_common/common/bin
./wlst.sh
connect(‘weblogic’, ‘password123’, ‘t3://localhost:7001’)
# 查看集群状态
domain = cmo
cluster = domain.lookupCluster(‘fgeduHAcluster’)
print(‘Cluster Name: ‘ + cluster.getName())
print(‘Cluster Messaging Mode: ‘ + cluster.getClusterMessagingMode())
print(‘Servers in Cluster:’)
for server in cluster.getServers():
print(‘ – ‘ + server.getName())
exit()
Welcome to WebLogic Server Administration Scripting Shell
Connecting to t3://localhost:7001 with userid weblogic …
Cluster Name: fgeduHAcluster
Cluster Messaging Mode: unicast
Servers in Cluster:
– server1
– server2
Exiting WebLogic Scripting Tool.
4.2 负载均衡实战
WebLogic负载均衡的实战案例:
1. 部署应用到集群
cd /WebLogic/app/weblogic15c/wlserver/server/bin
./weblogic.Deployer -adminurl t3://localhost:7001 -user weblogic -password password123 -deploy -name fgeduApp -source /WebLogic/app/applications/fgeduApp.war -targets fgeduHAcluster
for i in {1..10}; do curl http://192.168.1.100:80/fgeduApp/hello.jsp; echo “”; done
Hello from server2!
Hello from server1!
Hello from server2!
Hello from server1!
Hello from server2!
Hello from server1!
Hello from server2!
Hello from server1!
Hello from server2!
4.3 故障转移测试
WebLogic故障转移的测试案例:
1. 模拟服务器故障
cd /WebLogic/fgdata/domains/fgedudomain/bin
./stopManagedWebLogic.sh server1 t3://localhost:7001
2. 测试故障转移
for i in {1..10}; do curl http://192.168.1.100:80/fgeduApp/hello.jsp; echo “”; done
Hello from server2!
Hello from server2!
Hello from server2!
Hello from server2!
Hello from server2!
Hello from server2!
Hello from server2!
Hello from server2!
Hello from server2!
3. 恢复服务器
cd /WebLogic/fgdata/domains/fgedudomain/bin
./startManagedWebLogic.sh server1 t3://localhost:7001
4. 测试负载均衡恢复
for i in {1..10}; do curl http://192.168.1.100:80/fgeduApp/hello.jsp; echo “”; done
Hello from server2!
Hello from server1!
Hello from server2!
Hello from server1!
Hello from server2!
Hello from server1!
Hello from server2!
Hello from server1!
Hello from server2!
更多学习教程公众号风哥教程itpux_com
Part05-风哥经验总结与分享
5.1 集群最佳实践
- 合理规划集群规模:根据应用的负载和可用性要求,确定集群的规模
- 使用动态集群:对于负载变化较大的应用,使用动态集群可以根据负载自动调整服务器实例数量
- 配置合适的集群通信模式:对于小型集群,使用单播模式;对于大型集群,使用多播模式
- 启用服务器自动重启:配置节点管理器,当服务器实例失败时自动重启
- 使用服务器模板:使用服务器模板统一配置服务器实例,减少配置错误
- 定期备份集群配置:定期备份集群配置,以便在配置错误时快速恢复
5.2 高可用性最佳实践
- 使用冗余硬件:使用冗余的服务器、存储和网络设备,提高系统的可用性
- 配置负载均衡器:使用硬件或软件负载均衡器,分发请求,提高系统的可用性和性能
- 启用会话复制:启用会话复制,确保会话的连续性,提高应用的可用性
- 配置健康监控:配置健康监控,及时发现和处理服务器故障
- 定期测试故障转移:定期测试故障转移流程,确保系统在故障时能够正常切换
- 制定灾难恢复计划:制定灾难恢复计划,确保在发生重大故障时能够快速恢复系统
5.3 故障处理技巧
- 监控系统状态:使用WebLogic控制台、监控工具等实时监控系统状态
- 分析日志:分析WebLogic日志,找出故障的原因
- 使用诊断工具:使用WebLogic诊断框架(WLDF)等工具诊断故障
- 快速响应:当发生故障时,快速响应,减少故障对系统的影响
- 记录故障:记录故障的原因和解决方案,便于后续参考
- 持续改进:根据故障处理的经验,持续改进系统的设计和配置
风哥提示:WebLogic集群与高可用性是确保系统稳定运行的重要保障,需要根据应用的需求和硬件资源进行合理规划和配置,通过持续的监控和测试,确保系统的可用性和性能。
from WebLogic视频:www.itpux.com
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
