`
OneEyeWolf
  • 浏览: 105319 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

群集的存在意义

    博客分类:
  • tech
阅读更多
     近来为客户新做一个电子商务网站,部门经理天天给我说要把群集做进方案里,听的都吐了,在没有对于用户服务需求真正在进行好认真的分析的前提下,就将群集做进方案里,真的觉得很厌烦。
   
    我觉得即使对于中型的电子商务网站,也不一定需要群集,群集只会增加复杂度,甚至有可能延长用户请求的响应时间。同时限制Web应用的开发方案,如对于重型的基于SessionWeb-Flow方案,你就要考虑不能使用了。但对于电子商务网站,web-flow的应用很多,想像一个网站下单的过程,-查询-预订-登陆-填写需求-填写配送单-信用卡担保(或网上支付)-生成订单。使用wegbflow框架很方便,但在群集环境下,却有性能负担。
    我觉得基于apache的前导load-balancer方案,已经足够了,它可以持续将同一个Session的请求,分发给同一个worker进行处理。没有必要再使用群集来进行Session复制。

   
分享到:
评论
9 楼 ahuaxuan 2006-12-26  
集群的问题在without ejb里,和精通ejb(第三版)都有非常详细的描述的,楼主不防一看
8 楼 LucasLee 2006-12-26  
OneEyeWolf 写道
Lucas Lee 写道
就我阅读Tomcat的集群文档来说,集群(Cluster)和负载均衡(load balance)是两个问题,但通常是一起结合使用的。
Cluster是指几台服务器之间关联,一般主要指session 复制,使之成为一个整体,访问任何一台服务器都可以达到相同的效果;
Cluster建成后,需要利用Load balancer来执行请求的分发,就是分发到Cluster中具体的服务器上。


我的意思,你不明白吗,就是不要session复制,避免技术复杂化带来的副作用?

在网站下单时,宁愿让整体的会话请求失败,也不愿意在会话的过程中间去失败。


我真的不太明白,群集对于开发者来说怎么样把技术复杂化了?实际上,群集,或者部署机器上用的什么高级UNIX服务器,等等,对于开发者来说都是透明的。

你认为session复制,会导致网站下单时,在中间过程失败么?我认为这种情况应该是群集去考虑的,如果他没有处理好这个问题,我认为他的确没有设计好,如果他处理好了,那么这个担心是因为你还不太了解session复制不会带来什么应用逻辑上的问题。

7 楼 OneEyeWolf 2006-12-26  
Lucas Lee 写道
就我阅读Tomcat的集群文档来说,集群(Cluster)和负载均衡(load balance)是两个问题,但通常是一起结合使用的。
Cluster是指几台服务器之间关联,一般主要指session 复制,使之成为一个整体,访问任何一台服务器都可以达到相同的效果;
Cluster建成后,需要利用Load balancer来执行请求的分发,就是分发到Cluster中具体的服务器上。


我的意思,你不明白吗,就是不要session复制,避免技术复杂化带来的副作用?

在网站下单时,宁愿让整体的会话请求失败,也不愿意在会话的过程中间去失败。
6 楼 LucasLee 2006-12-26  
另外,对于方案来说,有群集的概念其优势是显而易见的,可以支持fault-tolerant,性能更高,未来可以更容易的、低成本水平扩展,听上去更cool,等等,在商业方面优势比较大。
而对于开发者,其实了解一下群集对于开发有何限制是必要的,其实也没有多少限制,主要就是session里的任何对象都要实现Serializable接口,然后session里的东西要尽可能少。其他的东西都是可以在部署时考虑的东西。

所以,虽然可以实际上用不上群集,但学学实际无妨,还是有好处的。
5 楼 OneEyeWolf 2006-12-26  
load-balance + asynchronized session replication 是个好主意,待俺尝试尝试,不过Tomcat也可以配置异步Session 吧。
4 楼 LucasLee 2006-12-26  
就我阅读Tomcat的集群文档来说,集群(Cluster)和负载均衡(load balance)是两个问题,但通常是一起结合使用的。
Cluster是指几台服务器之间关联,一般主要指session 复制,使之成为一个整体,访问任何一台服务器都可以达到相同的效果;
Cluster建成后,需要利用Load balancer来执行请求的分发,就是分发到Cluster中具体的服务器上。
3 楼 robbin 2006-12-26  
两个方案可以结合着来做:

前端apache使用session sticky方法保证同一用户总是导向同一个node,后端JBoss(注意不是Tomcat)配置异步session复制。

这样在通常情况下有apache保证请求可以达到hold该用户状态的node,而异步session复制有可以保证不影响性能,最后当该node fail以后,apache路由到其他node的时候,JBoss的异步复制又可以保证其他node已经拥有该用户状态。

不过对于大型的电子商务网站,apache基于HTTP协议层的load balance性能就撑不住了,这个时候可以考虑使用LVS,基于IP层协议的load balance,现在也支持session sticky(其实不需要基于session进行分发,只要基于IP进行分发就好了,用一个用户在一次session会话过程中不可能换IP的)。
2 楼 OneEyeWolf 2006-12-26  
方案1,需要application server 支持,且开发时,要避免使用重型的Session来解决问题。

方案2,只需要apache来解决就可以了.

方案1 实际上需要 load-balance + session replication.

方案2 就只有load-balance了。

方案1应当是人们经常说的群集方案吧,必须要有软件支持吧。

方案2就是load-balance方案,可以基于硬件,也可以基于软件.
1 楼 dengyin2000 2006-12-26  
集群对session有两种吧

1、基于request的负载均衡

    该种方式下,负载均衡器 (load balancer)会根据各个node的状况,把每个 http request进行分发。使用这样的均衡策略,就必须在多个node之间复制用户的session,实时保持整个cluster的用户状态同步,这种操作被称为session复制(session replication)。Jboss的实现原理是使用拦截器(interceptor),根据用户的同步策略拦截request,做同步处理后再交给server产生响应。

    该方法的优点是客户不会被绑定都具体的node,只要还有一个node存活,用户状态都不会丢失,cluster都能够继续工作。缺点是node之间通信频繁,响应速度有影响,多并发、高频操作的情况下性能下降比较厉害。

2、    基于用户的负载均衡

该种方式下,当用户发出第一个request后,负载均衡器动态的把该用户分配到某个节点,并记录该节点的jvm路由,以后该用户的所有request都会被绑定这个jvm路由,用户只会与该server发生交互,这种策略被称为粘性session(session sticky)。

该方法的优点是响应速度快,多个节点之间无须通信。缺点也很明显,某个node死掉以后,它负责的所有用户都会丢失session。

相关推荐

    具有时滞的多智能体系统的群集运动分析.pdf

    这项工作对于理解具有时滞的多智能体系统的行为以及优化设计群集控制策略具有重要意义,对于系统开发和实际应用提供了理论参考。 总的来说,这篇文章贡献了以下关键知识点: 1. Cucker-Smale模型在群集运动分析中的...

    一种公寓式建筑物三维产权群集自动构建方法.docx

    对于公寓式建筑物,产权分布通常具有聚集性,产权体由多个相邻的胞腔组成,而且胞腔之间可能存在连通性。因此,公寓式建筑物成为研究自动构建产权群集的理想选择,因为它们的结构特性有助于确定产权体和胞腔之间的...

    带通信时滞的多智能体系统的群集运动.pdf

    通过设定特定条件,证明即使存在时滞,智能体间的通信仍然可以促进群集行为的形成。这意味着,通过合理设计系统参数,可以克服通信时滞带来的负面影响。 【数值仿真】 论文还进行了C-S模型的数值仿真,以验证理论...

    论文研究-等级制度下带有时变时滞的群集运动.pdf

    在研究论文《等级制度下带有时变时滞的群集运动》中,作者深入探讨了在具有领导层级的多智能体系统中,即使在存在时变通信延迟的情况下,智能体(Agent)之间如何实现群集运动(Flocking Motion)。群集运动是指一群...

    Linux群集任务分配算法的探讨.pdf

    【Linux群集任务分配算法的探讨】 ...总结来说,Linux群集任务分配算法的研究对于优化集群性能、提升服务质量具有重要意义。随着技术的发展,不断改进和创新的分配策略将更好地应对日益复杂的计算需求和网络环境。

    Atang群集软件+DB2Linux下配置实例.

    - 确保网络中不存在预定的浮动IP地址(如192.168.0.213),避免IP冲突。 2. **DB2的安装**: - 从IBM官方网站下载DB2的安装包,并在主节点上关闭其他主机,进行rpm包的安装。 - 在安装过程中,特别注意安装依赖...

    基于群集技术的数据集中管控系统.pdf

    然而,这些解决方案依赖于操作系统的权限和接口,一旦系统本身存在漏洞,其防护效果将大打折扣。 文章提出了一种基于群集技术的新型底层基础平台构建方法。群集技术是一种将多个独立的计算资源(如服务器)组合成一...

    群集系统分群行为建模与控制研究进展

    群集系统的分群行为表征为一个聚合的母群分裂成多个子群的现象, 探讨其产生机理和控制方法具有重要的理论意义和应用价值. 鉴于此, 从分群行为的理论建模和控制方法两个角度出发, 对近年来群集系统分群运动研究的主要...

    大数据-算法-基于混沌蚂蚁的群集协同求解算法及应用.pdf

    通过对蚂蚁群体行为的混沌特性研究,作者发现蚂蚁个体行为的混沌映射与群体的周期性行为之间存在内在联系,这为理解和设计新的优化算法提供了新的视角。 论文的主要研究内容包括以下几个方面: 1. 混沌同步视角下...

    多分区对齐群集

    此外,本文提出的模型考虑了不同视图之间可能存在的集群结构的一致性,这使得各个视图间的信息融合变得更加合理和高效。 通过实验验证,多分区对齐群集方法展示出在多个真实世界数据集上的优越性。这表明该方法在...

    DARC:基于群集的无线传感器网络中的分布式和自适应路由协议

    然而,群集策略也存在一些固有的问题,如群集头节点的能量消耗过快,以及群集间的通信平衡问题。 DARC协议的提出,正是为了解决群集策略在实际应用中出现的这些问题。它特别关注群集头节点与其它群集以及基站之间的...

    Optimized flocking of autonomous drones in confined envs.pdf

    这种优化的群集控制策略对于无人机技术的发展具有重要意义,它不仅提高了无人机系统的整体效率,还增强了其在复杂环境中的适应性和安全性。未来,随着无人机技术的不断进步,这种优化模型的应用前景将更加广阔,可能...

    论文研究 - 卢旺达咖啡种的遗传多样性评估及其对咖啡育种的意义

    遗传变异在育种计划中很重要,... 在群集I和II之间观察到最高的群集间距离475,而群集II中的群集内最高距离(62)。 表型标记提供了一种有效的方法来衡量咖啡种之间的遗传距离,并确定了潜在的供体以供将来的育种工作。

    可重配置计算系统中硬件任务的群集调度

    通过使用DAG来表示任务,结合启发式和动态规划调度策略,可以在提高系统性能的同时,减少配置和执行的时间开销,这对于提升FPGA设备的利用率和整个计算系统的效率具有重要意义。随着技术的发展和实际应用需求的增加...

    VMware Workstation 6.0 中 Cluster 配置指南

    ### 相关知识点 #### 一、群集技术概述 **服务器群集**是一种通过将多台服务器组织在一起,提供高可用性、故障恢复、可伸缩性和可管理性的技术。...这对于搭建稳定可靠的群集环境具有重要的指导意义。

    轻松实现网络负载平衡

    - **端口规则管理**:默认情况下存在一个端口规则,用于根据每个成员的负载量分配客户端通信。在此实验中,删除了默认端口规则以实现基于优先级的负载分发机制。 - **添加第一个节点**:将Server作为第一个节点加入...

    GetLastError返回值的意义

    ### GetLastError返回值的意义 在Windows操作系统中,`GetLastError`函数是用于获取上一个错误代码的一个非常实用的工具。此函数常被用作诊断程序运行过程中遇到的问题,并为开发人员提供有关错误的具体信息,以便...

    保持群集的网络流草图

    聚类方法在许多数据处理任务中都有应用,尤其在需要将数据简化为有意义的表示形式时。 在实验中,该框架适应了线性速率并提供了准确的查询结果。在现实世界中的基于轨迹驱动的模拟显示,所提出的框架在广泛的参数下...

Global site tag (gtag.js) - Google Analytics