02.wls集群

554 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
554
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

02.wls集群

  1. 1. WebLogic Server 集群 孟和 渠道售前咨询顾问
  2. 2. 议程 • WLS域、集群概述 • 配置集群 • 管理集群
  3. 3. 议程 • WLS域、集群概述 • 配置集群 • 管理集群
  4. 4. WebLogic的域 • 域是WebLogic服务器实例的基本管理单元 • 域包含一个或多个WebLogic服务器实例,但其中有且仅 有一个管理服务器
  5. 5. 从物理和逻辑角度看域 • Oracle中间件目录 • 在一个Oracle 中间件的安装环境下, 可以创建多个域 • 域目录(Domain Home ) • 从物理层面,域是一个包含了所有服务 器、服务和部署了应用的目录 • 受管服务器实例可以从任何可以访 问到域目录的硬件服务器启动 • 服务器可以引用同一个域目录,也 可以使用其本地的域拷贝
  6. 6. WebLogic的服务器和集群 • 管理服务器(Administration Server) • 域中有且仅有一个WLS实例配置为管理服务器 • 管理服务器作为域的中央管理节点 • 受管服务器(Managed Servers ) • 域中除了管理服务器的WLS实例称为受管服务器 • 受管服务器用于运行应用组件和资源 • 集群(Cluster) • 集群是一组协同工作的服务器实例,从客户端的视角看像是一个单个 运行时 • 集群为应用程序提供可扩展性和高可用性
  7. 7. 管理服务器对受管服务器的交互 • 管理服务器保存域配置的主备份,包括域内所有受管服 务器的配置。 • 每个受管服务器保存其配置的本地备份。 • 当受管服务器启动时,它连接到管理服务器同步配置。 • 当配置改变时,管理服务器发送改变配置给受管服务器
  8. 8. 机器(Machine) • 一个识别特别的、物理硬件的定义。 • 一个机器定义用于将一台计算机与其上的受管服务器 关联起来。 • 被节点管理器用来重启动失败的受管服务器。 • 被集群受管服务器用来选择存储复制会话数据的最佳 位置。
  9. 9. 节点管理器(Node Manager) • 运行在物理服务器的工具/进程,使 得您可以远程启动、停止、挂起、重 启WebLogic服务器实例。 • 必须运行在节点管理器要管理的 WebLogic服务器实例一起的物理服 务器上。 • 与域不相关。可以启动同一物理服务 器上的任何服务器实例。 • 可选的,但是当使用管理控制台启动 /停止服务器时是必须的。 • 整个服务器迁移和一些自动服务迁移 配置,必需节点管理器。 Admin Server Managed Server Node Manager
  10. 10. 集群Cluster • 集群是一组同时运行,一起 工作的受管服务器,提供了 递增的扩展性和可靠性 • 扩展性: 通过并行性 • 可靠性/可用性: 通过复制和冗 余 • 对大多数客户端,集群好比 单个实例 • 集群支持一些高级特性,如 整个服务器迁移,服务迁移, 和集群的JMS目标。 Cluster 1 Cluster 2 Admin Svr
  11. 11. WebLogic集群带来高可用性 支持Oracle RAC  迅速的Failover  自动化Failback  可选的负载均衡或者高可用  对请求的Failover  周期性健康检查  牢靠的交易管理  支持快速连接Failover
  12. 12. 基本集群架构 • 基本集群架构将静态HTTP,展现逻辑,业务逻辑和对 象组合在一个集群中。
  13. 13. 多层集群架构 • Web层和业务逻辑服务可以分布在两个集群中。
  14. 14. 何时使用多层集群架构 • 多层集群架构推荐给具有如下需求的Web应用: • 对集群化EJB方法调用的负载均衡 • 在提供HTTP内容的服务器与提供集群对象的服务器之间实现 负载均衡灵活性 • 高可用性(更少的单点故障) • 更灵活的安全性
  15. 15. 代理服务器 • 代理服务器用来为集群提供负载均衡和故障接管。它 们: • 也是客户端与集群交互的第一层次 • 给了集群一个服务器的表象 • 代理服务器可以是基于软件的,也可以是基于硬件的。 • 基于软件的代理服务器可以是内部WebLogic Servlet, 或者第三方应用。 • 典型的,基于硬件的代理服务器是一台物理负载均衡 器。
  16. 16. WLS HttpClusterServlet • HttpClusterServlet: • 作为缺省Web应用部署在 代理服务器上 • 以循环的方式分发客户端 请求给集群中的服务器
  17. 17. WLS 插件 • WLS使用下列插件兼容主要的Web服务器: • Sun Java System Web Server插件(以前的Netscape iPlanet 或Sun One Web Server) • IIS插件(微软IIS) • Apache插件 • 插件: • 委派动态内容请求给WLS • 集群内循环分发 • 支持基于URL路径的路由,或基于请求文件MIME类型的路由, 或两者兼有 • 基于会话cookie或URL重写路由HTTP请求给后端WLS实例 • 避免集群中的失败服务器
  18. 18. #1 #2 集群中的会话状态复制 浏览器 Web 服务器 Servlet 引擎 B A B C B C A 局域网复制 •基于内存的主服务器和备份服务器复制,可以采用同步 或者异步方式
  19. 19. 集群内通讯分类 • 集群成员之间的通讯 • 多播或者单播(UDP) • 集群心跳信号 • 广播常规 “心跳” 消息来表明其可用性 • 维护从集群成员接收到心跳消息时维护活动集群成员列表 • 集群范围的JNDI更新 • 通告从本地部署或者删除的集群对象的可用性 • 接收到对等节点的集群对象通告后,更新本地 JNDI • 套接字通讯(TCP) • 访问集群内远程服务器实例上的非集群对象 • 在主服务器和次服务器之间复制HTTP会话状态和有状态会话 EJB状态 • 访问远程服务器实例上的集群对象
  20. 20. 城域网复制 全局负载均衡 集群 B 本地负载均衡 集群 A 本地负载均衡
  21. 21. 灾难恢复 – 站点复制 广域网复制 全局负载均衡 集群 B 本地负载均衡 集群 A 本地负载均衡 数据库1 数据库2 异步复制
  22. 22. 广域网集群的通讯 • 在广域网集群中,集群服务器可以跨越多个子网 • 为了在广域网上可靠传输多播消息,网络必须满足如 下要求: • 完全支持IP多播数据包的传播 • 允许多播消息到达其目标的网络延迟时间是200到300毫秒 • 多播的time-to-live值足够高,以确保路由器不会丢弃多播数据 包
  23. 23. 关于广域网集群的最佳实践 • 广域网集群不应该被理解为城域网集群+数据库 • 过度频繁的数据传输会导致其像城域网一样工作,但会 增加同步的开销 • 广域网集群可以不依赖于远程集群来使用,将其视为 会话数据的数据库备份 • 网络环境非常关键 • 使用广域网的站点failover和更高的可用性 • 针对非关键应用,常规的集群复制应该就足够了
  24. 24. 议程 • WLS域、集群概述 • 配置集群 • 管理集群
  25. 25. 环境配置 • 机器不要动态分配IP地址 • 集群中服务器实例数目没有限制: • 大型的、多处理器的服务器可以部署大型集群 • 推荐每两个CPU配置一个WebLogic服务器实例 • 在生产环境,使用DNS名称,而不使用IP地址: • 防火墙会引起IP地址转换错误 • 每个WebLogic服务器资源应该有唯一的名称 • 除了集群通讯外,多播地址不应用于其他任何方面
  26. 26. 集群地址 • 集群地址用来在构建请求URL的主机名部分 • 集群地址应该是一个映射到IP地址的DNS命名,或者 映射到集群中每个WebLogic服务器实例的DNS命名 • 动态集群地址以下面的形式创建: • Listenaddress1:listenport1,listenaddress2:listenport2,listenad dress3:listenport3
  27. 27. 配置WLS集群的工具 • 可以通过多种方式创建与配置WebLogic服务器集群: • 配置向导 • 管理控制台 • Ant • WLST
  28. 28. 使用管理控制台创建集群…
  29. 29. …使用管理控制台创建集群
  30. 30. 配置多播
  31. 31. 添加服务器…
  32. 32. …添加服务器
  33. 33. 使用配置向导创建集群
  34. 34. 使用Ant通过集群Mbean配置集群 • 集群Mbean用于使用Ant或命令行工具创建集群 • 从命令行配置集群需要集群和服务器Mbean的组合 • 在域内创建新的集群,使用: Weblogic.management.configuration.ClusterMBean
  35. 35. 使用WLST创建集群
  36. 36. 使用Ant创建集群
  37. 37. 启动集群服务器
  38. 38. WebLogic代理服务器 • WebLogic HTTPClusterServlet运行于WebLogic服务 器上的Web应用中。 • 这个Servlet代理将请求转发给集群中其他服务器 • 它应该运行在独立的、非集群的受管服务器上 • WebLogic代理服务器可以使用配置向导创建。 • 你也可以手工设置带HTTPClusterServlet的Web应用,部署到 受管服务器上
  39. 39. 使用配置向导创建WebLogic代理服务器
  40. 40. 手工创建WebLogic代理服务器 • 在代理服务器上缺省Web应用的web.xml文件中指定 HttpClusterServer • 该文件必须位于Web应用目录的WEB-INF中 • 代理Servlet需要被定义为受管服务器的缺省Web应用 • 这是由位于Web应用WEB-INF目录中的weblogic.xml部署描述 符定义的。
  41. 41. 配置HttpClusterServlet • HttpClusterServlet在代理服务器上缺省Web应用的 web.xml文件指定的。
  42. 42. 指定初始参数
  43. 43. Servlet映射
  44. 44. HttpClusterServlet初始参数…
  45. 45. … HttpClusterServlet初始参数
  46. 46. 配置Apache插件… • 作为Apache HTTP服务器的一个模块安装Apache HTTP服务器插件 • 该模块可以两种不同方式配置: • 作为动态共享对象 • 作为静态链接模块(1.3.x和更高版本) • 配置动态共享对象,选择共享对象类型: • mod_wl_20.so (标准Apache 2.x版本) • mod_wl_ssl.so (带SSL/EAPI的Apache)
  47. 47. …配置Apache插件… • 编辑httpd.conf文件,包含WebLogic服务器模块 • LoadModule weblogic_module modules/mod_wl_20.so • 添加一个IfModule块,定义WebLogic集群实例
  48. 48. …配置Apache插件 • 添加代理路径
  49. 49. 议程 • WLS域、集群概述 • 配置集群 • 管理集群
  50. 50. 将应用部署到集群 • 当部署应用到单个受管服务器,可以为展开的部署方式 • 当部署应用到受管服务器集群,必须为打包方式部署, 并且是两阶段应用部署模式 • 应用被两阶段复制到集群并激活: • 阶段1:分发应用组件和模块到服务器 • 阶段2:如果阶段1成功则部署应用,允许客户端访问 • 这样确保了客户端可以访问应用之前,其在每一个节点 上都是可用的和活动的
  51. 51. 将应用部署到集群(续) • 在部署应用到集群之间,所有节点必须运行 • 如果两阶段部署的阶段2失败,应用将仍然部署到集群 中的其他节点 • WebLogic允许应用部分部署到分区的服务器 • 在应用部署时,如果节点是分区的,那么被部署应用 的会话复制可能失败 • 可以使用weblogic.Deployer的enforceClusterEonstraints标签 避免这个问题 • 或者在控制台中检查“Enable Cluster Constraints”框 • 当部署应用到集群时,不要修改集群成员关系
  52. 52. 部署应用到集群…
  53. 53. …部署应用到集群
  54. 54. 高可用的应用并行部署 零停机时间的应用部署模式 • 多个应用版本并行部署 • 可控的测试模式及自动 回滚 • 自动应用停用:对客户 端最友好的应用停用方 式 • 确保版本升级中的交易 完整性 WebLogic Server 被管服务器 同一个JVM 已经在服务的外部访问 新到达的外部访问 旧的应用版本 新的应用版本 管理员测试客户端连接 在向所有客户提供服务 之前,只对管理员进行测试
  55. 55. HTTP会话状态复制 • WebLogic服务器通过复制HTTP会话状态,对JSP和 Servlet提供集群支持 • 为了支持HTTP会话状态集群,你必须确保会话状态是 持久的,配置: • 内存复制 • JDBC复制 • 文件系统复制 • 你也必须通过具有相同配置代理插件的Web服务器集 合,或负载均衡硬件,来访问集群 • 会话持久性通过weblogic.xml部署描述符文件中的 <session-descriptor>元素配置的 • 每种持久性方法都有自己的配置参数集
  56. 56. 复制组 • 复制组是集群中相关服务器的逻辑组 • WLS允许你使用复制组,决定在哪里放置备份对象 • WLS尝试: • 如果配置过,发送备份对象给预定义次要复制组 • 发送备份对象给不同机器 • 避免发送备份对象给同一个复制组中的服务器
  57. 57. 配置复制组 • 选择集群中的每一个服务器,指派一对复制组
  58. 58. 分级服务器 • WebLogic服务器对集群中的服务器分级,以决定哪个 服务器作为备份
  59. 59. 内存复制… • WLS可以复制: • HttpSession对象 • 有状态会话EJB • 会话对象仅存在两台服务器上 • 次要服务器与对象: • 次要服务器由复制组和机器定义决定 • 主要对象创建后,次要对象马上被创建 • 主要服务器失败,使得备份对象成为主 要对象
  60. 60. …内存复制
  61. 61. 内存复制的要求 • 来自同一个客户端的后续请求必须访问同一个主要对 象 • 为了使用HTTP会话状态内存复制,客户端必须使用下 面两种方法之一访问集群: • 负载均衡硬件(WLS知晓) • Web服务器集合,或单个Web服务器,带有WebLogic代理插 件(配置相同) • 配置有HTTPClusterServlet的WebLogic服务器
  62. 62. 配置内存复制 • 配置内存复制: • 配置代理服务器(如果适用) • 配置复制组和/或机器(可选) • 在weblogic.xml部署描述符中指定持久类型
  63. 63. 持久JDBC复制 • 所有服务器实例都可以访问 所有会话 • 同一个客户端的后续请求可 以被任何服务器处理 • 强大的故障接管能力 • 显著的性能降低 • 修改会话对象引起(慢速) DB同步
  64. 64. 配置JDBC复制 • 配置JDBC复制: • 在数据库中创建表格 • 创建一个连接池,具有对数据库的读写权限 • 在weblogic.xml部署描述符中配置你的会话持久性
  65. 65. JDBC持久表格配置 • 名字为WL_SERVLET_SESSIONS,具有读写访问的数 据库表格
  66. 66. 文件持久 • 会话状态也可以保存在文件中 • 对于文件持久: • 必须创建目录来保存文件 • 文件必须具有适当的访问权限
  67. 67. 配置文件持久 • 为Web应用配置基于文件的会话持久: 1. 创建一个被集群中所有服务器共享的文件夹 2. 在weblogic.xml部署描述符中指定file持久类型:
  68. 68. 会话状态管理最佳实践 • 根据应用需求和架构,选择最合适的复制策略 • 确保放入复制会话的对象是可串行化的 • 如在跨不同机物理服务器之间复制会话状态,要创建 WebLogic机器 • 适用复制组定义故障接管策略 • 使用ServerDebugConfig跟踪会话复制问题

×