应用的集群部署

基本附和 魔力猫咪 的观点。

[quote]主要看具体是什么集群。现在有些用F5之类的负载均衡器的应用也被叫做集群,还有双机热备(部分人也把它叫集群,其实只有一台机器在工作,另一台是备份机,平时不参与业务,只有主机不能提供服务的时候,备份机采工作)。还有用一些JVM集群缓存软件构件的集群。这些集群每台机器一般都需要单独部署。因为使用F5负载均衡和双机热备的,其实是一台台单机。JVM缓存我没有用过,不太清楚。不过估计应用服务器自己并不知道还有其他机器和自己同步。

标准的JavaEE集群一般分两种,war集群及EJB集群。war因为考虑到Session复制的问题,一般不推荐做大集群。不过用来做2-3台的廉价入门集群还是可以的。
EJB集群一般在上面部署的都是EJB组件。不同厂商用不同的办法来保证有状态SessionBean的集群复制。比如Weblogic采用双机结对、Sun使用特殊的数据库同步。一般有一台专门的代理管理服务器负责对整个集群的管理,所以在这台管理器上进行部署就可以了。
应用在集群上面跑和在单机上面跑是完全不同的两个概念。很多单机上可以使用的框架和设计模式在集群环境下是绝对不能使用的。比如单例模式。集群环境下根本无法再集群中只有一个单例,每个服务器都会有自己的单例。还有就是Spring,Spring目前是不能用于标准的JavaEE集群环境下的。当然,有人推出了Spring的集群框架,不过我不太清楚是否好用。AOP配置集群的话,估计会很复杂。 [/quote]


如果设计上做了多线程同步,要注意如何切分在多个虚拟机上同步仍然有效,不然就忍了吧。
很大程度上,即使最初设计使用了cache server 单机系统也很难通过应用服务器集群配置支持集群部署。

稍微复杂点的企业应用都很难集群,更多的是搞一台超级强大的服务器;
或者整个系统划分为多个子系统,独立运行,各系统通过数据接口,服务的形式做应用集成。
相比较来讲,EJB似乎是更高级的方式,但所需要处理的复杂度绝对一点都不会少。(这里讲的不是集群,但不要忘记EJB似乎是集大成者)

关于集群随便找本书看看都是写的不清不楚,前面提到的问题都不是系统配置简单了事,需要从整个系统设计层面整体考虑。

你可能感兴趣的:(Java技术,企业应用,应用服务器,Spring,EJB,设计模式)