论坛首页 Java企业应用论坛

我来提个案例

浏览 6972 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2004-04-08  
我们目前手上有个项目,内容很简单,企业网站,日本人的要求也很“简单”,我们是大型企业,站点要求“零中断”,就是后台系统发生任何变动,包括内容变更、系统升级、OS重启、出现故障等等,都不能影响浏览客户的操作,比如他正在执行订单操作,他不会感觉到后台的变化,而且他的订单操作不会有任何中断,会完整无误的提交至网站后台。

可能把这个Case放在这个讨论区有些不妥,不过确实是个企业应用,我们从硬件、网络设备、数据库、应用服务器等各个层面都在做讨论,大家帮忙想想办法,出出主意,谢谢。
   发表时间:2004-04-08  
我承认,我原来没有做过,不过我有一个设想,不知道是不是可行?

部署两套,甚至N套完全一样的系统。

用户访问时,被中转(或者叫路由到)到某一台机器。其他的机器,和这套系统,做热备份。

然后,动态切换就可以了。
0 请登录后投票
   发表时间:2004-04-08  
容错啊,要是小日本有钱的话,直接就给他们搞容错计算机。
0 请登录后投票
   发表时间:2004-04-08  
ozzzzzz 写道
容错啊,要是小日本有钱的话,直接就给他们搞容错计算机。


往里扔钱小日本有够抠门估计很难,总之对硬件要求似乎要高于软件。
0 请登录后投票
   发表时间:2004-04-08  
基本思路是服务器群集+负载平衡

应用服务器提供的群组负载平衡来解决,如tomcat/apache、WebLogic、Websphere等应用服务器都有自己的Cluster解决方案,MS也有方案。

在群组负载平衡的方案里,如果我们选用软件来解决,那么应该至少是三台服务器,一台做为接收请求处理调度的管理用机,即负载均衡器,另外两台做为服务实体。但是访问量大时,瓶颈会出在负载均衡器上,如果它出现故障,那么会导致整个网络瘫痪,所以经费充足的情况下,采用带负载平衡功能的4层交换(要不就是7层)交换机,MS推荐我们用F5。

具体的细节就得请系统工程师来设计了。

今天很凑巧,买了《MSDN开发精选》和《程序员》,没想到《MSDN开发精选》中“企业解决方案中性能和可靠性设计”一文中介绍了服务器群集、负载平衡、故障转移三个技术,很不错。
0 请登录后投票
   发表时间:2004-04-16  
一蓑烟雨任平生 写道
基本思路是服务器群集+负载平衡

应用服务器提供的群组负载平衡来解决,如tomcat/apache、WebLogic、Websphere等应用服务器都有自己的Cluster解决方案,MS也有方案。

在群组负载平衡的方案里,如果我们选用软件来解决,那么应该至少是三台服务器,一台做为接收请求处理调度的管理用机,即负载均衡器,另外两台做为服务实体。但是访问量大时,瓶颈会出在负载均衡器上,如果它出现故障,那么会导致整个网络瘫痪,所以经费充足的情况下,采用带负载平衡功能的4层交换(要不就是7层)交换机,MS推荐我们用F5。

具体的细节就得请系统工程师来设计了。

今天很凑巧,买了《MSDN开发精选》和《程序员》,没想到《MSDN开发精选》中“企业解决方案中性能和可靠性设计”一文中介绍了服务器群集、负载平衡、故障转移三个技术,很不错。


请问你们打算在应用服务器上CACHE数据库数据并在集群机器之间同步吗?
0 请登录后投票
   发表时间:2004-04-16  
建议核心业务采用消息BEAN来处理,这样可以容错了!
0 请登录后投票
   发表时间:2004-04-19  
有2种办法:
1。软件的热备
2。通过集群
2种办法其实思路是一样的,价格也差不多。我原来遇到过这样的问题。
都是通过IP地址转换,比如说你建立了2 个服务器,一个是192.168.0.1和192.168.0.2,可以建立一个虚拟ip192.168.0.3,App server访问的时候只要访问192.168.0.3,通过硬件或者软件的办法分别存储到192.168.0.1和192.168.0.2上,当一台机器down掉(一般是主服务器),备用服务器很快就能跟上操作(我们测试过大概需要4-5秒的时间,如果我没有记错,应该是这个数字)。
0 请登录后投票
   发表时间:2004-04-20  
对做双机热备,银行的业务就是用的这个.安全性挺高的
0 请登录后投票
   发表时间:2004-05-20  
这个,基本上,很难!

所谓的热备、集群只能保证在应用不变的情况下,系统、硬件的宕机不影响处理。

但是如果应用发生变化,比如你的订单操作例子,假设在此时订单处理的这个对象变了,如何做到更换实现而不影响正在执行的用户呢。

这里要采用“版本”这个概念,也就是我们的功能是有版本的,并且可以同时存在多个版本。例如当用户正在进行订单操作时,增加一个新版本。那么正在执行的用户还是照原来的版本执行,而新登陆的用户就会执行新版本。

这种版本概念在工作流系统中比较普遍,因为工作流的执行时间较长(几天甚至可能数月),此时需要更改工作流的逻辑就需要版本功能,据我所知Weblogic Integration 8.1支持。但是在普通的应用服务器就很少支持,比如对于一个JNDI名字,只能对应一个EJB实现而不能有多个不同的EJB实现。自己实现版本功能难度不小!
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics