欢迎大家赞助一杯啤酒🍺 我们准备了下酒菜:Formal mathematics/Isabelle/ML, Formal verification/Coq/ACL2/Agda, C++/Lisp/Haskell
JFox Cluster
来自开放百科 - 灰狐
				
								
				(版本间的差异)
				
																
				
				
								
| 第1行: | 第1行: | ||
| − | JFox Cluster 为 [[JFox]]   | + | JFox Cluster 为 [[JFox]] 的高可靠性和可扩展性提供了强大的技术基础.  | 
目前 JFox Cluster 还不稳定, 仍在开发和测试中, 还不可交付使用, 敬请关注.    | 目前 JFox Cluster 还不稳定, 仍在开发和测试中, 还不可交付使用, 敬请关注.    | ||
2006年9月12日 (二) 00:56的版本
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可分离
 - 集群能力与协议无关(支持任何调用协议)
 
正确认识集群
- 集群不是一项简单的技术
 - 集群也没有想象的那么复杂
 - 从应用角度来讲,尽可能把集群看得简单些
 - 实现集群的基本功能比较简单,但要实现精确的可靠的集群非常复杂
 
	分享您的观点