我目前正在开发一个新的应用程序。应用程序架构师坚持要使用 JBoss5,因为它更好。如果有的话,有人能给出更广泛的“更好”(是这种情况吗)的定义吗?
我有使用 Tomcat5和6处理大规模应用和大用户负载的经验,而且我认为它表现得很好。两者都将在相同的硬件条件下运行于 RedHat6上(如果实施方案有关的话)。
提前致谢
我目前正在开发一个新的应用程序。应用程序架构师坚持要使用 JBoss5,因为它更好。如果有的话,有人能给出更广泛的“更好”(是这种情况吗)的定义吗?
我有使用 Tomcat5和6处理大规模应用和大用户负载的经验,而且我认为它表现得很好。两者都将在相同的硬件条件下运行于 RedHat6上(如果实施方案有关的话)。
提前致谢
说任何工具或框架都只是“更好”是荒谬的。这总是取决于情况、架构等。你不一定想用锤子来拧螺丝。
我写了《JBoss in Action》,所以我显然喜欢JBoss技术,但我会第一个承认在许多情况下使用JBoss可能过于复杂。例如,对于我开发的最后两个站点,更有意义的是使用Grails构建并在独立的Tomcat实例上部署。
说使用JBoss时只得到EJB和JMS有点不公平。JBoss提供许多服务和功能,包括:
吸引许多架构师使用JBoss的东西是其灵活性。它使用插件架构,允许您添加和删除服务。正如其他人所说,在使用Tomcat作为其Servlet容器时,您可以将JBoss缩小到实际上只是一个Tomcat服务器。这样做有什么好处?如果您认为您将利用JBoss的其他功能,那么就可以未雨绸缪。
在JBoss中,这些服务是预先集成的,并努力提供一致的部署模型,以最大程度地减少编写应用程序逻辑或配置来集成它们所需的工作量。也就是说,像Spring这样的其他框架也很好地支持了许多流行的库和框架的统一集成方式。但由于它们专注于集成第三方库,所以服务之间的互操作性取决于您。因为JBoss正在构建服务和集成平台,所以他们花时间开发(并提供支持)以实现互操作性。
做出选择时需要问一些问题:
不是为了卖弄,但是JBoss in Action的第一章在Manning网站上免费提供。尽管我们在该章节中没有对JBoss和其他应用服务器和部署环境进行直接比较,但我们确实谈到了一些架构差异,这与你的问题相关。
不是更好,只是更多。JBoss包含了Tomcat。
如果您使用的是JBoss,您可以向Jboss.org支付费用来获取支持。但是对于Tomcat并非如此。
尽管如此,红帽公司(收购了Jboss.org)将要求您更改为他们支持的版本之一的JBoss。
JBoss符合J2EE规范,非常好地支持了J2EE规范,如EJB、JTA、JMS、JNDI等。Tomcat只是一个Servlet容器,虽然它也支持一些J2EE规范。当您想要使用J2EE组件时,应首先考虑JBoss。
还有一点需要注意,JBoss在4.*版本中特别好地支持JMX。我曾经参与过一个项目,它没有Web UI,仅将JBoss用作平台和EJB容器,通过MBean集成了所有独立应用程序。