Java EE集群技术初探——第一部分(对一些术语的解释)

Java EE集群技术初探
 
越来越多的任务关键型与大规模应用运行在Java EE技术上。有的应用例如银行的或者是记费系统需要越来越高的高可用性(HA),另外一些应用比如像Google或者是Yahoo则需要越来越好的可扩展性。eBay在99年的22小时宕机,造成230万笔交易的中断,影响其股价下跌9.2%。这个示例充分证明了高可用性和可扩展性在今天变得越来越重要。
 
Java EE的集群技术是为了提供高可用和有容错能力的可扩展服务。但是由于Java EE缺少此方面的规范,所以Java EE的供应商都使用不同的技术来实现集群,为此对开发人员和架构师带来一定的问题,例如:
 
有集群功能选项的Java EE服务器为什么会那么贵?(可能比没有的要贵10倍)
我的程序按照标准Java EE规范编写,为何不能在集群环境下运行?
为何我的程序在集群环境下运行得更慢?
为何要移植在集群环境下的程序那么复杂?
 
所以,我们通过探讨Java EE集群环境的实现方式来理解并解决上述问题。
 
 
一些基本的概念
在真正开始探讨实现技术之前,我们先来了解一些基本的概念。了解这些概念不仅是理解Java EE集群技术的基础,而且勾勒出了构建集群的不同技术实现的关键点,更易于理解实现。
 
可扩展性(scalability)
在一些大规模的系统中,不太好预估确切的在线用户数和他们的行为。可扩展性即指系统能够支撑用户数量激增的情况。立马能想到的提高可扩展性(在线并发会话)的办法是在服务器上增加资源(内存、CPU……)。集群技术是解决这个问题的另一途径。集群支持一组服务器从逻辑上作为单独的服务器运行,但共同分担系统负载。
 
高可用性(high availability)
采用单一服务器解决方案(增加内存、CPU等)来解决可扩展性的问题并非完美,因为系统失败集中于一点(单一服务器)上。任务关键型的应用(银行的或者是计费系统)不能容忍哪怕只有一分钟的宕机。所以需要这些服务在任何时刻都必须可以访问。集群技术是达到这类高可用要求的解决方案,它通过在集群中提供附加的服务器来保证一旦其中的某个服务器宕机时服务的延续性。
 
负载均衡(load balance)
负载均衡是集群技术中重要的一部分。通过将请求分发到不同的服务器,它提供了可同时获得高可用性和更高性能的服务的方法。简单的负载均衡器可以是一个Servlet或一些插件,复杂的负载均衡器可能是高级的嵌入了SSL加速器的硬件设备。除了分发请求之外,负载均衡器还负责执行一些重要的任务:
“会话持久”用来确保用户会话生命周期在一台服务器上的完整性。
“心跳”来检查失败的服务器。
在某些情况下,负载均衡器需要参与“失败转移”的过程,下文中会提及。
 
容错(fault tolerance)
高可用环境下的数据不见得肯定是正确的数据。在Java EE集群中,当一个服务器实例宕机(以后统称“失败”)后,服务通过集群中别的服务器依然可用。但是在失败的那台服务器中正在处理的请求也许就不能获取正确的数据了。所以,容错技术可始终保证在特定的错误环境下也能执行正确的行为。
 
失败转移(Failover)
失败转移是集群当中的另一项实现容错的重要技术。失败转移通过在集群中选择另一节点,将能延续失败节点上的服务。失败转移可通过代码指定或者自动通过底层平台的通信链路进行自动切换。
 
幂等方法(Idempotent methods)
幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。例如,“getUsername()”函数就是一个幂等函数,“deleteFile()”函数就不是。“幂等”是HTTP Session和EJB失败转移中的一个重要概念。

本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/BU_BetterYou/archive/2008/05/15/2447922.aspx

Java EE 容器化部署的实践经验 本文旨在为Java EE开发者提供全面的容器化部署指导,涵盖从单体应用到微服务架构的容器化改造过程。Java EE应用容器化的必要性Docker和Kubernetes的技术整合生产环境中的最佳实践常见问题的解决方案本文首先介绍Java EE容器化的背景和核心概念,然后深入探讨技术实现细节,最后分享实际案例和经验总结。Java EE: Java Platform, Enterprise Edition,企业级Java平台容器化: 将应用及其依赖打包成标准化单元的技术Docker。 阅读详情

相关推荐

解析 Java 领域 Java-EE 的微服务治理

传统Java-EE企业应用如何与微服务治理结合。我们将覆盖Java-EE的核心能力(如事务管理、安全、消息队列)与微服务治理需求(如服务发现、容错、监控)的融合点,并重点讲解Jakarta EE生态中的微服务标准——MicroProfile的具体应用。用“连锁超市管理”类比微服务治理,解释核心概念;结合Java-EE规范与MicroProfile标准,拆解治理模块的技术实现;提供“用户服务+订单服务”的实战案例,演示服务注册、容错、配置中心的代码实现;

AI开发架构师 1224

Java EE集群技术初探

Java EE集群技术初探 越来越多的任务关键型与大规模应用运行在Java EE技术上。有的应用例如银行的或者是记费系统需要越来越高的高可用性(HA),另外一些应用比如像Google或者是Yahoo则需要越来越好的可扩展性。eBay在99年的22小时宕机,造成230万笔交易的中断,影响其股价下跌9.2%。这个示例充分证明了高可用性和可扩展性在今天变得越来越重要。 Java EE的集

Allin's blog 2258

Java-EE在Java领域的分布式会话管理

在当今的互联网应用中,为了应对高并发、大数据量等挑战,分布式系统得到了广泛应用。在Java领域,Java-EE(Java Enterprise Edition)作为企业级开发的标准平台,其分布式会话管理至关重要。本文的目的在于深入剖析Java-EE在分布式环境下的会话管理机制,包括如何在多个服务器节点之间共享和管理用户会话信息,以确保用户在分布式系统中的无缝体验。范围涵盖了分布式会话管理的核心概念、算法原理、实际应用场景以及相关的开发工具和资源。

AI开发架构师 762

Java EE集群技术初探——第七部分(EJB集群的实现)

 EJB集群的实现EJB是Java EE重要的组成部分,实现EJB的集群也是最具挑战的部分。 EJB技术也来源于分布式计算,可在独立的服务器上运行。Web服务器组件或胖客户端能从其他计算机通过标准RMI/IIOP协议访问EJB组件。调用远程EJB的方法和调用本地Java对象的方法一样。实际上,RMI-IIOP完全实现了对本地/远程调用的透明性。上图展示了调用远程EJ

BU_BetterYou的专栏 1751

MIMO-OFDM 通信-感知一体化(ISAC)中的联合优化与性能权衡

本文深入探讨了MIMO-OFDM技术在通信-感知一体化(ISAC)系统中的核心作用与挑战。文章分析了如何通过联合优化资源分配、波束成形与波形设计,在有限的频谱与硬件资源下,实现通信速率与感知精度之间的最佳平衡,并指出了工程实践中面临的同步、干扰等关键难题。

dapp9builder的博客 215

HID设备开发避坑指南:如何利用Windows内置驱动快速实现USB键盘模拟

本文详细解析了HID设备开发中的免驱方案与USB键盘模拟技术,重点介绍了HID协议的核心优势、开发基础架构及Windows平台的实现方法。通过实战案例和代码示例,帮助开发者快速掌握USB键盘模拟技术,避免常见开发陷阱,提升设备兼容性和性能。

lambda的博客 682

Java EE集群技术初探——第二部分(什么是Java EE的集群)

 Java EE集群 总的来讲,Java EE集群技术包括“负载均衡”和“失败转移”两个部分。 在上图中,“负载均衡”即指由许多客户端对象(Client Object)同时请求目标对象(Target Object)。负载均衡器位于调用方和被调用方中间,可以将请求分发至功能相同但位置不同的目标对象中。高性能和高可用性都可通过这种方法实现。 如上图,“失败转

BU_BetterYou的专栏 3247

深入解读WT软件湍流强度计算与分析

深入解读WT软件湍流强度计算与分析

weixin_46713695的博客 1021

Java EE集群技术初探——第六部分(JNDI集群的实现)

 JNDI集群的实现 Java EE规范要求Java EE容易需要提供对JNDI规范的实现。在Java EE应用中,JNDI的主要角色就是提供了一个中间层,资源可通过较为透明的方式获得。这使Java EE组件提高了重用度。 具有完整功能的集群JNDI是Java EE集群的重要内容,因为几乎每个EJB组件都从查找(lookup)其JNDI树的home接口开始。各个厂商实现JNDI

BU_BetterYou的专栏 2177

openclaw-cn : 无法将“openclaw-cn”项识别为 cmdlet、函数、脚本文件或可运行程序的名称 解决方案

本文主要介绍了openclaw-cn : 无法将“openclaw-cn”项识别为 cmdlet、函数、脚本文件或可运行程序的名称解决方案,希望能对使用openclaw-cn的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 10万+

YOLOv11知识蒸馏,实现无损涨点,包含逻辑蒸馏和特征蒸馏中的不同蒸馏方法,适用专栏内的所有模型

知识蒸馏(Knowledge Distillation)是由 Hinton 等人在 2015 年提出来的,主要是用一个复杂的教师模型去指导一个简单的学生模型训练,这样能让学生模型在保持高精度的同时,还能减少计算量。本文便是讲解如何针对的原始模型以及改进后的模型进行知识蒸馏,轻松实现无损涨点。知识蒸馏的核心在于利用已训练好的复杂模型(教师模型)去指导一个更简单的模型(学生模型)进行训练,以此让学生模型在保留较高精度的同时,降低计算成本。特征蒸馏(Feature Distillation)是知识蒸馏的一种形式,

Limiiiing的博客 4959

Java EE集群技术初探——第八部分(关于Java EE集群的误区)

 关于Java EE集群的误区 失败转移能完全避免错误。——否在JBoss的文档中,我看见一段警告:“真的需要HTTPSession复制么?”当然,有的时候不带失败转移的高可用解决方案是可接受,而且也很划算。而且,失败转移的功能并不像想象中的那样强大。 那到底失败转移能带来些什么呢?有的人认为失败转移能避免错误。事实上,如果没有失败转移,当服务器失败时会因会话数据的丢失产生

BU_BetterYou的专栏 1772

【异常】Hermes Agent调用z.ai接口失败(余额不足)API call failed (attempt 1/3): RateLimitError [HTTP 429]

补充说明:同步尝试解析接口对应网页时,出现“网页解析失败,可能是不支持的网页类型,请检查网页或稍后重试”提示,该提示不影响核心报错排查,仅作为辅助信息。

奶爸的编程之路,也就一周冷个三天 1194

java集群技术_什么是集群?集群?java集群技术面试的一些知识准备

你是否正在寻找关于集群技术的内容?让我把最完整的东西奉献给你:java集群技术面试的一些知识准备一个集群系统是一群松散结合的服务器组,形成一个虚拟的服务器,为客户端用户提供统一的服务。对于这个客户端来说,通常在访问集群系统时不会意识到它的服务是由具体的哪一台服务器提供。集群的目的,是为实现负载均衡(Load Balancing)、容错(Fault Tolerance)和灾难恢复(Failover)...

weixin_30533377的博客 1560

PCIe Base Specification解析(二)

PCIe事务层,Transaction Layer Specification

Crazzy_M的博客 1291

XDMA Scatter-Gather(SG)模式

XDMA Scatter-Gather(SG)模式 是 Xilinx FPGA 中用于高效处理 ​非连续内存数据 的 DMA 传输机制,通过 ​描述符链表(Descriptor List)​ 管理多块分散数据,显著减少 CPU 开销并提升吞吐量。

浩瀚之水的专栏 2131

将Java EE应用程序部署到Docker Swarm集群

什么是Docker Swarm? Docker Swarm为Docker提供了本机集群。 使用Docker Swarm 0.2.0的集群提供了Docker Swarm的基本介绍,以及如何创建简单的三节点集群。 作为回顾,Docker Swarm的关键组件如下所示: 简而言之, Swarm Manager是预定义的Docker主机,并且是所有管理的单点。 其他Docker主机被标识为节点...

danpob13624的博客 196

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Java EE集群技术初探——第三部分(Web层集群的实现)

Web层集群实现Web层的集群技术是Java EE集群技术中最基础且最重要的部分。Web集群技术包括:Web负载均衡与HTTPSession失败转移。 Web负载均衡Java EE的供应商通过多种方式实现Web负载均衡。总的来说,负载均衡器在浏览器和Web服务器之间进行监听,如下图:诸如F5负载均衡器这样的硬件产品可以担当这个工作,也有可能是一个有负载均衡插件的另一

BU_BetterYou的专栏 1989

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Java SE、Java EE和Java ME有什么区别?

*Java SE(标准版)**是Java技术体系的基石,提供完整的开发工具链和核心类库,包含JVM虚拟机、多线程支持、网络通信等基础功能。**Java EE(企业版)**在SE基础上扩展了企业级特性,通过Servlet、JSP、EJB等组件模型支持分布式系统开发,重点解决高并发、事务管理等企业级需求,典型应用于电商平台和ERP系统。Java SE是Java技术的基础核心,Java EE建立在SE之上为企业应用提供完整解决方案,Java ME则是SE的精简版本针对资源受限设备。一、技术定位与核心差异。

q1252301的博客 907

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Java EE集群技术初探——第四部分(各大厂商的产品如何Web层集群)

 “JavaGroups”是目前JBoss 和Tomcat集群使用的通信层。JavaGroups是一套可靠的组合通信和管理工具包。其中的核心功能,如“组员协议”与“消息多播”技术,是支持集群正常工作的重要基础。具体内容可以参考http://www.jgroups.org/javagroupsnew/docs/index.html。 Tomcat:多服务器复制有很多种内存复制的办法,

BU_BetterYou的专栏 1488
上一篇: Java EE应用中的性能问题解决方案 — 第三部分 JDBC调整优化
下一篇: 深入掌握JMS
topinking
博客等级 码龄20年 15粉丝 242原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值