锁定老帖子 主题:群集的存在意义
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-12-26
Lucas Lee 写道 OneEyeWolf 写道 Lucas Lee 写道 就我阅读Tomcat的集群文档来说,集群(Cluster)和负载均衡(load balance)是两个问题,但通常是一起结合使用的。
Cluster是指几台服务器之间关联,一般主要指session 复制,使之成为一个整体,访问任何一台服务器都可以达到相同的效果; Cluster建成后,需要利用Load balancer来执行请求的分发,就是分发到Cluster中具体的服务器上。 我的意思,你不明白吗,就是不要session复制,避免技术复杂化带来的副作用? 在网站下单时,宁愿让整体的会话请求失败,也不愿意在会话的过程中间去失败。 我真的不太明白,群集对于开发者来说怎么样把技术复杂化了?实际上,群集,或者部署机器上用的什么高级UNIX服务器,等等,对于开发者来说都是透明的。 你认为session复制,会导致网站下单时,在中间过程失败么?我认为这种情况应该是群集去考虑的,如果他没有处理好这个问题,我认为他的确没有设计好,如果他处理好了,那么这个担心是因为你还不太了解session复制不会带来什么应用逻辑上的问题。 如果是开发者当然不需要了,只需要code就行了,出了问题,只要不是自己代码的问题,就不用负责。以你的水平不应当是开发者,应当是designer or architector 吧,透明, 只是从开发来讲的一种术语而已或者是商业解决方案的一个宣传,我们在不断的学习技术的过程中,这种口号见的还少吗,可是有多少人仍然陷于实际的困境中,有多少调优者为了查找一个性能瓶颈点,或者莫名其妙的,不可再现的问题,痛苦的不得了,这些你都经历过吧, 你见过call center 的电话记录中,记录了多少个莫名其妙的,难以再现的投诉吗。 |
|
返回顶楼 | |
发表时间:2006-12-26
俺做过14台机子的简单集群,SUSE的
不说配制复杂吧,主要是问题多,而且SUSE的版本之间也有问题 而且中间中是间间断断出现问题. "对于开发者来说都是透明的"并没能向方档"承诺"的一样,不过可能是俺还不熟悉. 另外:俺认为理想情况下cluster中不要放session,也就是说cluster应该是stateless的,(只是理想情况下)相当一个logic(service) layer(这也是俺理解的"不要分布你的对象") 很多情况的是可交给前台或数据库,甚至client去处理的. |
|
返回顶楼 | |
发表时间:2006-12-26
那些门户网站的集群和均衡负载是怎么做的?
chinaren好像是java的门户,它是怎么做的? |
|
返回顶楼 | |
发表时间:2006-12-26
OneEyeWolf 写道 如果是开发者当然不需要了,只需要code就行了,出了问题,只要不是自己代码的问题,就不用负责。以你的水平不应当是开发者,应当是designer or architector 吧,透明, 只是从开发来讲的一种术语而已或者是商业解决方案的一个宣传,我们在不断的学习技术的过程中,这种口号见的还少吗,可是有多少人仍然陷于实际的困境中,有多少调优者为了查找一个性能瓶颈点,或者莫名其妙的,不可再现的问题,痛苦的不得了,这些你都经历过吧, 你见过call center 的电话记录中,记录了多少个莫名其妙的,难以再现的投诉吗。 看来,你已经是深恶痛绝,颇有微词了。我并不清楚你的处境,不过可以看出你最近心情不佳啊。 呵呵,此时不适合深入谈技术。 另:architector 应为architect |
|
返回顶楼 | |
发表时间:2006-12-26
OneEyeWolf 写道 近来为客户新做一个电子商务网站,部门经理天天给我说要把群集做进方案里,听的都吐了,在没有对于用户服务需求真正在进行好认真的分析的前提下,就将群集做进方案里,真的觉得很厌烦。
我觉得即使对于中型的电子商务网站,也不一定需要群集,群集只会增加复杂度,甚至有可能延长用户请求的响应时间。同时限制Web应用的开发方案,如对于重型的基于SessionWeb-Flow方案,你就要考虑不能使用了。但对于电子商务网站,web-flow的应用很多,想像一个网站下单的过程,-查询-预订-登陆-填写需求-填写配送单-信用卡担保(或网上支付)-生成订单。使用wegbflow框架很方便,但在群集环境下,却有性能负担。 我觉得基于apache的前导load-balancer方案,已经足够了,它可以持续将同一个Session的请求,分发给同一个worker进行处理。没有必要再使用群集来进行Session复制。 写N个频道,每个频道都用一台服务器。。。。 之后跟他们说已经集群了。。。。 session?可以不用 可以用数据库开一个表用来存用户信息。。。。 IAmOK 写道 那些门户网站的集群和均衡负载是怎么做的?
chinaren好像是java的门户,它是怎么做的? 不用session或用域名分配: 天涯上 www13.tianya.cn http://www12.tianya.cn/index.asp ..... 只要你不手动去改一般都不会有session问题。。。。 |
|
返回顶楼 | |
发表时间:2006-12-26
Lucas Lee 写道 就我阅读Tomcat的集群文档来说,集群(Cluster)和负载均衡(load balance)是两个问题,但通常是一起结合使用的。
Cluster是指几台服务器之间关联,一般主要指session 复制,使之成为一个整体,访问任何一台服务器都可以达到相同的效果; Cluster建成后,需要利用Load balancer来执行请求的分发,就是分发到Cluster中具体的服务器上。 tomcat的session复制性能是很糟糕的,而且tomcat文档自己都说不建议两个以上node的同步。 JBoss对于tomcat的session同步进行了改进,使用JBossCache,所以性能会好很多。node复制方式也是master slave方式的。 |
|
返回顶楼 | |
发表时间:2006-12-26
电子商务网站不考虑集群,莫非每天只想接几个单??? 集群是把系统给做简单了而不是变复杂, 试想某天业务量太大导致服务器撑不住了, 这个时候前期考虑到集群的只需要买点硬件装好系统配置一下就ok了. 而那些没有集群支持的, 就是改代码改得吐血恐怕也很难优化提升性能吧??? 不过在实际应用中,集群助长了写低效率的代码的惰性,因为可以用硬件来弥补性能的不足,就懒得动脑筋把代码写的更好了. 当然在商务上倒也带来好处,因为硬件由用户买单,而帮用户采购硬件又可以赚取利润. |
|
返回顶楼 | |
发表时间:2006-12-26
Tomcat + SNA Filter +Memcached.这样也可以简单集群. |
|
返回顶楼 | |
发表时间:2006-12-27
codeutil 写道 电子商务网站不考虑集群,莫非每天只想接几个单??? 集群是把系统给做简单了而不是变复杂, 试想某天业务量太大导致服务器撑不住了, 这个时候前期考虑到集群的只需要买点硬件装好系统配置一下就ok了. 而那些没有集群支持的, 就是改代码改得吐血恐怕也很难优化提升性能吧??? 不过在实际应用中,集群助长了写低效率的代码的惰性,因为可以用硬件来弥补性能的不足,就懒得动脑筋把代码写的更好了. 当然在商务上倒也带来好处,因为硬件由用户买单,而帮用户采购硬件又可以赚取利润. 难道使用load-balance,达不到效果吗,你对方案1,和方案2,有个仔细分析吗,我说的不使用群集,实际上是指应用层上不使用基于Session-replication的群集,说白了也就是Session复制。 我还是非常非常的迷惑,很多方案中,都不使用Session,尽量将数据放在Cookie中,以此来提高网站的性能。在EJB方案中,提倡使用无状态SessionBean。我觉得是站着说话不腰疼,那有那么多简单的应用,只有简单的无状态就可以搞定了,那写代码的复杂度又会成倍的增加,就那我说的一个下单的过程,一个单据大量的信息,如果不放在Session中,还真不好写。 从另一方面讲,如果都搞成无状态,那还要Session replication做什么。还不如,就要个apache做前端的Load-balancer 或者 使用硬件都可以了。 所以我再明确一下我的提议:只需要apache来作为端的load-balancer或者使用Robbin建议的基于硬件的load-balancer.就可以了。这个方案难道不比load-balancer + session replication 简单有效吗。而且开发人员在编写web应用时,不用担心session的负担。 |
|
返回顶楼 | |
发表时间:2006-12-27
有些appserver(weblogic)可以把session记到数据库里边。怕session复制的话可以优先考虑这种方案,只要不把大对象往session里边仍,性能也还过得去。这样appserver前端只要简单的Round robin分发就可以了。
|
|
返回顶楼 | |