问题描述
我现在开发了一个ejb和一个web应用,web应用调用ejb,现在我想在2台服务器上部署ejb,在第三台上部署web应用,不知道ejb部署有什么注意的地方,另外部署完成后,web应用又如何访问,访问时又如何做到负载均衡,请高人给解答一下,在下谢谢了!!!问题补充:谢谢2位了,再问个,在2台服务器上部署了同样的ejb,我的web应用该如何访问呢?问题补充:能给个例子吗问题补充:谢谢cats_tiger的回答,thank you。同时也感谢魔力猫咪的解答;
解决方案
你可以在web服务器上开两个web应用,然后用apache做集群,这两个分别访问ejb就可以了。不过,你的这种拓扑结构有问题的。这种东西的,例子怎么给呀,先看我说的那篇文章吧。IBM和BEA的网站上有很多这方面的文章的。
解决方案二:
也可以用F5做balancer,很贵的。正如猫咪所说,不同的application server集群实现是不同的,你可以看看《揭开J2EE集群的神秘面纱》这篇文章,TSS上有,中文的也有。
解决方案三:
首先应该考虑的是web的负载平衡,然后才是EJB的。访问web的时候用一个load balancer做负载平衡,常见的是apache+tomcat/jboss/weblogic。EJB是否做负载平衡需要慎重考虑,单纯从性能考虑,web负载平衡就够了。EJB集群应用在非常关键的业务中,提供高可用性。web集群已经提高了可用性了,如果不是银行电信的核心应用,可以考虑只用web集群。
解决方案四:
首先要注意的就是EJB模块里是否有单例。单例是针对一个JVM而言的。集群环境下的EJB单例要到3.1才可以实现。如果有单例可能会出问题。还有就是缓存,Hibernate等缓存一定要使用支持集群的。EJB集群的负载均衡一般由集群的管理服务器负责。所有请求统一发向这个管理服务器,由它进行分发。具体设置每家都不一样。你只能参考你使用应用服务器厂商的说明书。Web可以用WebService和EJB远程的方式访问。