JFox Cluster

来自开放百科 - 灰狐
(版本间的差异)
跳转到: 导航, 搜索
(正确认识集群)
 
(未显示2个用户的8个中间版本)
第1行: 第1行:
JFox Cluster 为 [[JFox]] 的高可靠行和可扩展性提供了强大的技术基础.
+
JFox Cluster 为 [[JFox]] 的高可靠性和可扩展性提供了强大的技术基础.
  
==JFox Cluster 实现==
+
目前 JFox Cluster 还不稳定, 仍在开发和测试中, 还不可交付使用, 请持续关注.
 +
 
 +
有关 JFox Cluster 的讨论, 请到 JFox 论坛 - http://forum.huihoo.com/forumdisplay.php?fid=4
 +
 
 +
==认识集群==
 +
* 分布式计算的延伸
 +
* 传统的分布式计算,强调服务器端对客户端的透明
 +
* 集群强调服务器端可由多台服务器提供服务,同时仍然对客户端透明
 +
* 分布式计算是对传统计算模式的分布,集群计算是对分布式计算Server端的再分布
 +
* 提供HA(High-Availability), not equals H-P(High-Performance).
 +
* HA,保证在不可预测情况下(访问量猛增、不可预测的宕机),系统的可用性
 +
* HP,提供最小的请求响应时间
 +
* 由于出于不同的考虑因素,HA不一定就等于HP,甚至矛盾.
 +
* 最重要的功能
 +
* Load Balance (负载均衡)
 +
          o Chose right Node
 +
          o Session Stick
 +
          o Request Re-Dispatch when node failed
 +
          o Software/Hardware’s capability. (Apache/Pen/LVS/Cisco)
 +
* Fail-over (故障恢复)
 +
          o Session Replication & Session Relocation
 +
          o App. Server’s capability.
 +
*一些误区
 +
* 集群节点越多越好
 +
          o 集群本身有开销(CPU、Memory、 IO、 Network)
 +
          o 加一台286?
 +
* 集群结构越复杂越好
 +
          o 越复杂配置越麻烦,本身的稳定性也越难保证
 +
          o 什么都用最好的?
 +
* 集群性能一定比单机性能好
 +
          o 在单机能满足效率的情况的下,集群可能带来性能损失
 +
* 采用了集群,软件的性能和稳定性就高枕无忧了
 +
          o 仅提供有限的性能和可靠性保证,在软件质量以及硬件环境没有保障的情况,集群也无能为力
 +
 
 +
==集群的设计==
 +
* Cache 方案
 +
  * Distributed cache (In Memory, JGroup,JavaSpace)
 +
  * Centralize gloable cache (In Memory, In Database) Backup Storage/HADB
 +
* Transport方案
 +
  * 协议:UDP / TCP / JMS / JDBC
 +
  * 粒度:Delta / Whole Session/ Full Session Pool
 +
  * 同步:Sync/Async
 +
  * 频率:Per Method / Per Interval
 +
* 负载均衡算法
 +
  * 随机 - Random
 +
  * 轮循 - Round-Robin/Weighted Round-Robin
 +
  * 性能优先 - Performance Precedence
 +
  * 最少连接 - Least-Connection
 +
* Full Scope Cluster
 +
* Partition Cluster
 +
* Primary-Slave-Backup
 +
 
 +
==JGroups介绍==
 +
* Reliable
 +
  * NAKACK
 +
* Transport Protocol
 +
  * UDP Multicast/Unicast
 +
  * TCP Unicast
 +
* GMS (Group Membership Service)
 +
  * merge
 +
* FD (Failure Detection) – 心跳检查
 +
 
 +
==JFox Cluster 实现内容==
  
 
提供的基础功能
 
提供的基础功能
第31行: 第93行:
  
 
==JFox Remote Invoking Model==
 
==JFox Remote Invoking Model==
[[Image:JFox-Remote-Invoking-Model.png|thumb|right|JFox Remote Invoking Model]]
 
 
* ConnectorInvoker + ConnectorRemote + HandlerManager + Handler + Container
 
* ConnectorInvoker + ConnectorRemote + HandlerManager + Handler + Container
 
* Port Reuse
 
* Port Reuse
第37行: 第98行:
 
* 分布式计算分为两个过程,分布和计算,考虑 Local 协议
 
* 分布式计算分为两个过程,分布和计算,考虑 Local 协议
  
 
+
<gallery>
 
+
Image:JFox-Remote-Invoking-Model.png|JFox Remote Invoking Model
 
+
</gallery>
 
+
 
+
  
 
==JFox EJB Cluster Model==
 
==JFox EJB Cluster Model==
[[Image:JFox-EJB-Cluster-Model.png|thumb|right|JFox EJB Cluster Model]]
+
增加ClusterServer,ClusterContainer
* 增加ClusterServer,ClusterContainer
+
 
+
 
+
 
+
 
+
 
+
 
+
+
 
+
  
 +
<gallery>
 +
Image:JFox-EJB-Cluster-Model.png|JFox EJB Cluster Model
 +
</gallery>
  
 
==JFox EJB Smart Stub==
 
==JFox EJB Smart Stub==
[[Image:JFox-EJB-Smart-Stub.png|thumb|right|JFox EJB Smart Stub]]
+
Client 从集群中的节点创建的Stub含有多个Remote,并且能够在默认Remote 不工作的情况切换到能工作的Node
* Client 从集群中的节点创建的Stub含有多个Remote,并且能够在默认Remote 不工作的情况切换到能工作的Node
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
  
 +
<gallery>
 +
Image:JFox-EJB-Smart-Stub.png|JFox EJB Smart Stub
 +
</gallery>
  
 
==JFox Web Cluster Model==
 
==JFox Web Cluster Model==
[[Image:JFox-Web-Cluster-Model.png|thumb|right|JFox Web Cluster Model]]
+
Replace Web Server HttpSession Container with ClusterableHttpSessionContaine
* Replace Web Server HttpSession Container with ClusterableHttpSessionContaine
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
  
 +
<gallery>
 +
Image:JFox-Web-Cluster-Model.png|JFox Web Cluster Model
 +
</gallery>
  
 
==JFox Cluster 优势==
 
==JFox Cluster 优势==
第96行: 第137行:
 
* 实现集群的基本功能比较简单,但要实现精确的可靠的集群非常复杂
 
* 实现集群的基本功能比较简单,但要实现精确的可靠的集群非常复杂
  
==相关文档==
+
[[category:cluster]]
* http://www.huihoo.org/jfox/jfox-cluster.ppt
+
[[category:huihoo]]
 +
[[category:JFox]]

2015年12月14日 (一) 06:26的最后版本

JFox Cluster 为 JFox 的高可靠性和可扩展性提供了强大的技术基础.

目前 JFox Cluster 还不稳定, 仍在开发和测试中, 还不可交付使用, 请持续关注.

有关 JFox Cluster 的讨论, 请到 JFox 论坛 - http://forum.huihoo.com/forumdisplay.php?fid=4

目录

[编辑] 认识集群

  • 分布式计算的延伸
* 传统的分布式计算,强调服务器端对客户端的透明
* 集群强调服务器端可由多台服务器提供服务,同时仍然对客户端透明
* 分布式计算是对传统计算模式的分布,集群计算是对分布式计算Server端的再分布
  • 提供HA(High-Availability), not equals H-P(High-Performance).
* HA,保证在不可预测情况下(访问量猛增、不可预测的宕机),系统的可用性
* HP,提供最小的请求响应时间
* 由于出于不同的考虑因素,HA不一定就等于HP,甚至矛盾.
  • 最重要的功能
* Load Balance (负载均衡)
         o Chose right Node
         o Session Stick
         o Request Re-Dispatch when node failed
         o Software/Hardware’s capability. (Apache/Pen/LVS/Cisco)
* Fail-over (故障恢复)
         o Session Replication & Session Relocation
         o App. Server’s capability.
  • 一些误区
* 集群节点越多越好
         o 集群本身有开销(CPU、Memory、 IO、 Network)
         o 加一台286?
* 集群结构越复杂越好
         o 越复杂配置越麻烦,本身的稳定性也越难保证
         o 什么都用最好的?
* 集群性能一定比单机性能好
         o 在单机能满足效率的情况的下,集群可能带来性能损失
* 采用了集群,软件的性能和稳定性就高枕无忧了
         o 仅提供有限的性能和可靠性保证,在软件质量以及硬件环境没有保障的情况,集群也无能为力

[编辑] 集群的设计

  • Cache 方案
 * Distributed cache (In Memory, JGroup,JavaSpace)
 * Centralize gloable cache (In Memory, In Database) Backup Storage/HADB
  • Transport方案
 * 协议:UDP / TCP / JMS / JDBC
 * 粒度:Delta / Whole Session/ Full Session Pool
 * 同步:Sync/Async
 * 频率:Per Method / Per Interval
  • 负载均衡算法
 * 随机 - Random
 * 轮循 - Round-Robin/Weighted Round-Robin
 * 性能优先 - Performance Precedence
 * 最少连接 - Least-Connection
  • Full Scope Cluster
  • Partition Cluster
  • Primary-Slave-Backup

[编辑] JGroups介绍

  • Reliable
 * NAKACK
  • Transport Protocol
 * UDP Multicast/Unicast
 * TCP Unicast
  • GMS (Group Membership Service)
 * merge
  • FD (Failure Detection) – 心跳检查

[编辑] JFox Cluster 实现内容

提供的基础功能

  • Load Balance

--WEB - Http Request Redispatcher (Apache+Mod_JK/Pen)

--EJB - EJB Smart Stub

  • Fail-over

--WEB - HttpSession Replication Manager

--EJB - Bean Replication Manager

需要实现集群的容器

  • Clusterable JNDI Container
  • Clusterable Web Container
  • Clusterable EJB Container

--Stateless SessionBean 不需要Session Replication

  • Clusterable Message Container

[编辑] JFox Microkernel

JFox IoC Kernel

  • IoC based, Modular Ready.
  • POJO Remote Invocation
  • Multi-Protocol transport
  • Cluster Ready

--内核级集群支持,已经定义好了集群框架及API,开发容器的时候,只要实现ClusterableContainer 接口,即具备集群功能

--Support Smart Dynamic Proxy Stub

[编辑] JFox Remote Invoking Model

  • ConnectorInvoker + ConnectorRemote + HandlerManager + Handler + Container
  • Port Reuse
  • 可以根据需要增加协议,增加其它类型容器
  • 分布式计算分为两个过程,分布和计算,考虑 Local 协议

[编辑] JFox EJB Cluster Model

增加ClusterServer,ClusterContainer

[编辑] JFox EJB Smart Stub

Client 从集群中的节点创建的Stub含有多个Remote,并且能够在默认Remote 不工作的情况切换到能工作的Node

[编辑] JFox Web Cluster Model

Replace Web Server HttpSession Container with ClusterableHttpSessionContaine

[编辑] JFox Cluster 优势

  • 统一Handler+Container架构,扩展性强
  • 基于方法调用实现集群,比完全基于内容集群更灵活

基于数据,会有定时、对象检查等问题

  • 配置简单(做到集群系统和单机系统编码无关性)
  • Web Container 和 EJB Container可分离
  • 集群能力与协议无关(支持任何调用协议)

[编辑] 正确认识集群

  • 集群不是一项简单的技术
  • 集群也没有想象的那么复杂
  • 从应用角度来讲,尽可能把集群看得简单些
  • 实现集群的基本功能比较简单,但要实现精确的可靠的集群非常复杂
分享您的观点
个人工具
名字空间

变换
操作
导航
工具箱