深入理解J2EE集群:原理与实现
需积分: 10 26 浏览量
更新于2024-12-28
收藏 915KB PDF 举报
"J2EE Clustering - 揭开J2EE集群的面纱"
本文主要探讨了J2EE集群的概念、目标以及实现方式,详细阐述了WEB层、JNDI和EJB层面的集群技术,并针对JMS和数据库连接的集群支持进行了讨论,同时也揭示了一些关于J2EE集群的误解。
1. **基本术语**
- **可扩展性**:指系统能够通过增加硬件或软件资源来提升处理能力。
- **高可用性**:确保系统在大部分时间里保持正常运行,即使部分组件故障。
- **负载均衡**:将工作负载分布到多个计算资源上,以优化资源使用并提高响应速度。
- **容错**:系统设计允许在出现故障时仍能继续运作。
- **失败转移**:当主服务器出现故障时,将工作负载转移到备用服务器的过程。
- **幂等方法**:无论调用多少次,结果始终不变的方法,适合在分布式环境中使用。
2. **J2EE集群是什么**
J2EE集群是通过将多个服务器组织成一个集群,提供可扩展性、高可用性和容错能力。它允许多个服务器共享工作负载,当一个服务器出现问题时,其他服务器能够接管其服务。
3. **WEB层集群实现**
- **WEB层负载均衡**:通过负载均衡器分发请求,防止某台服务器过载。
- **HTTP会话的失败转移**:确保用户会话在服务器之间安全迁移,通常有数据库持久化、内存复制、多服务器复制等方案。
4. **JNDI集群实现**
- **共享全局JNDI树**:所有服务器共享相同的JNDI命名空间。
- **独立的JNDI**:每个服务器有自己的JNDI树,需处理同步问题。
- **中央集中JNDI**:所有服务器都从中央服务器获取JNDI信息。
- **初始化对JNDI服务器的访问**:确保所有服务器正确初始化JNDI连接。
5. **EJB集群实现**
- **SMARTSTUB**:智能桩,用于处理EJB实例在集群中的分布。
- **IIOP运行库**:支持CORBA IIOP协议,实现EJB跨服务器通信。
- **拦截代理**:在EJB调用中插入代码以处理集群逻辑。
- **EJB的集群支持**:EJBHomeStub和EJBObjectStub的集群特性,保证EJB在集群中的透明操作。
6. **JMS和数据库连接的集群支持**
集群环境下的JMS和数据库连接需要特别设计,如使用共享存储或分布式缓存来确保消息传递和数据一致性。
7. **关于J2EE集群的神话**
- **失败转移不能完全避免错误**:虽然能提高可靠性,但不能防止所有类型的错误。
- **单机应用无法直接迁移到集群**:需要进行改造以适应集群环境,特别是HTTP会话和数据库连接的管理。
J2EE集群是一个复杂而重要的技术,涉及到多个层次的协同工作,以实现更高效、可靠的分布式应用程序。理解这些概念和技术对于构建大型、高可用性的企业级应用至关重要。
2024-12-29 上传
2024-12-28 上传
2024-12-28 上传
2024-12-28 上传
2024-12-28 上传
2024-12-28 上传
fengyuanfa
- 粉丝: 15
- 资源: 384
最新资源
- STC12C5A60S2单片机A/D采样在OLED做一个简易的电压表
- api.woopms:免费的开源酒店物业管理系统
- terraform-azurerm-iq3-agw-内部-https
- JavaWeb期刊管理系统_课程设计附课设报告.zip
- pixelflut-client
- structurizr-dot:使用structurizr库生成图的示例
- UIScrollView-InfiniteScroll:UIScrollView∞滚动类别
- drupal-ping:这提供了一个_ping.php文件,该文件可在负载均衡器中用于检查实例是否正常
- butterfly-admin:基于 amis 并适配 butterfly 的后台模板
- 能力
- SaveReload-crx插件
- auraforce
- email-admin:这个 api 为每个 uesr 创建一个随机电子邮件
- wallabag:wallabag是一个可自我托管的应用程序,用于保存网页:保存和分类文章。 以后再阅读。 自由地
- LaraOngkir:Laravel Ongkir使用RajaOngkir api支票邮政费jne,pos,tiki
- workshop_asp_net_core_mvc