简体   繁体   English

是否值得从JBoss 5.1升级到JBoss 7.1

[英]Is it worth upgrading to JBoss 7.1 from JBoss 5.1

Currently our production environment runs JBoss 5.1 and we have been debating whether or not its worth migrating to JBoss 7.1. 目前我们的生产环境运行JBoss 5.1,我们一直在争论它是否值得迁移到JBoss 7.1。 If it was a simple server upgrade, then it wouldn't be a problem. 如果它是一个简单的服务器升级,那么它不会是一个问题。 But, unfortunately, we would have to change configurations and that would take some effort. 但是,不幸的是,我们必须改变配置,这需要付出一些努力。 Also, our server runs in a cluster and I read that JBoss 7.1 has more cluster support. 此外,我们的服务器在一个集群中运行,我读到JBoss 7.1有更多的集群支持。

So is it worth it or not? 它值得与否?

Thanks 谢谢

We're currently in the same situation. 我们目前处于相同的情况。

There seem to aa lot of things on the positive side: 积极方面似乎有很多事情:

  • We'll have to migrate off 5.1 at one point. 我们必须一次迁移5.1。 We need full profile and there are not that many OSS alternatives (GlassFish and maybe Geronimo). 我们需要完整的配置文件,并没有那么多的OSS替代品(GlassFish和Geronimo)。 That point alone will probably sell the migration since PCI-DSS forbids us to use EoL'd software. 由于PCI-DSS禁止我们使用EoL软件,因此仅此一点可能会出售迁移。
  • The configuration is so much better and simpler. 配置更好,更简单。 It's no longer spread over 20 XML files in which you configure aspects in XML files but one central place. 它不再分布在20个XML文件中,您可以在其中配置XML文件中的方面,但只有一个中心位置。 All ports are configured in one central place, there is no longer an XSL file that transforms server.xml. 所有端口都配置在一个中心位置,不再有一个转换server.xml的XSL文件。 You can make sense of the configuration file without knowing the implementation details of classes. 您可以在不知道类的实现细节的情况下理解配置文件。 It's hard appreciate this if you've never configured a JBoss. 如果您从未配置过JBoss,那么很难理解这一点。
  • The EJB remoting no longer uses a thread per socket. EJB远程处理不再使用每个套接字的线程。
  • Removing a subsystem you don't need is so much easier. 删除不需要的子系统非常简单。
  • The class loding model looks sane and you get a lot of control through jboss-deployment-structure.xml 类loding模型看起来很清晰,你可以通过jboss-deployment-structure.xml获得很多控制权
  • The EJB client library looks much more cleaned up. EJB客户端库看起来更加清理。 It's down to 10 JARs from 20, half of them are even OSGi bundles (our client is an Eclipse RCP application). 它从20个减少到10个JAR,其中一半甚至是OSGi捆绑包(我们的客户端是Eclipse RCP应用程序)。
  • While we're not too excited about Java EE 6 replacing some of our SLSBs with @Singleton beans and some of our SARs with timer EJBs certainly looks interesting. 虽然我们对Java EE 6用@Singleton bean替换我们的一些SLSB并不感兴趣,而我们的一些带有计时器EJB的SAR肯定看起来很有趣。
  • Faster start up and less memory usage (at least for an empty server or small deployments). 更快的启动和更少的内存使用(至少对于空服务器或小型部署)。 We haven't yet tested a large deployment. 我们还没有测试过大型部署。
  • The deployments folder is empty by default 默认情况下,deployments文件夹为空

Things that we still need to look into: 我们仍需要研究的事情:

  • We're a bit worried about Infinispan performance. 我们有点担心Infinispan的表现。 We currently use the TreeCache API of JBoss Cache. 我们目前使用JBoss Cache的TreeCache API。 While there is an adapter for Infinispan that provides the same API some theoretical tests show worse write performance. 虽然有一个适用于Infinispan的适配器提供相同的API,但一些理论测试显示出更差的写入性能。 This only applies to the tree API of Infinispan. 这仅适用于Infinispan的树API。
  • ExternalContext is no longer supported, we currently use it to populate a JNDI tree from a .bindings file 不再支持ExternalContext,我们目前使用它来从.bindings文件填充JNDI树
  • JMX console is gone, if you have anything that builds on this it needs to be adapted, Edit there is actually a port of JMX-Console available AS7-2227 JMX控制台已经不见了,如果你有任何基于它的东西需要调整, 编辑实际上有一个JMX-Console的端口可用AS7-2227

We don't run in a cluster so I can't comment on that. 我们不在群集中运行,因此我无法对此发表评论。

What will probably be the biggest effort for us is migrating all the shell scripts (installation, integration tests, …) that interact in one way or another with JBoss. 对我们来说最大的努力可能是迁移所有与JBoss以某种方式交互的shell脚本(安装,集成测试......)。

Update 更新

We have migrated and it was definitely worth it. 我们已经迁移,绝对值得。 Some updates to the points above: 以上几点的一些更新:

  • Even large deployments are fast with minimal amounts of tuning. 即使是大型部署也很快,只需要很少的调整。
  • The centralized logging (Slf4j, JUL, JCL, Log4j, …) is really nice. 集中式日志记录(Slf4j,JUL,JCL,Log4j,...)非常好。
  • 7.1 has so many bugs it was unusable for us, so we are on 7.2 / EAP 6.1 and plan to go to 7.3 / EAP 6.2. 7.1有很多错误,它对我们来说无法使用,所以我们在7.2 / EAP 6.1上计划进入7.3 / EAP 6.2。 Still has its fair share of bugs but we can work around them. 仍有其公平的错误,但我们可以解决它们。 We're especially looking forward to role-based access control for the management interface which will allows us to run our scripts with minimal privileges. 我们特别期待管理界面的基于角色的访问控制,这将允许我们以最小的权限运行我们的脚本。
  • There will not be a supported version of GlassFish 4 which puts a big question mark on it for production use. 将不会有支持的GlassFish 4版本,它为生产使用提出了一个很大的问号。
  • EJB remoting security is a lot less flexible. EJB远程安全性的灵活性要低得多。 We had to put in some workarounds since previously we were mixing authenticated and unauthenticated EJB calls — this is no longer possible. 我们不得不提出一些变通方法,因为之前我们混合了经过身份验证和未经身份验证的EJB调用 - 这已经不可能了。
  • The JEE 6 BOM POM from JBoss is a mixed bag. JBoss的JEE 6 BOM POM是一个混合包。 In theory it is nice because it manages the versions of all you JEE dependencies. 理论上它很好,因为它管理所有JEE依赖项的版本。 In practice the coordinates are horrible with the version in the artifactId which is going to be annoying when we migrate to JEE 7. Also it isn't very helpful when you want to include an implementation of a JEE API for tests. 在实践中,artifactId中的版本坐标很糟糕,当我们迁移到JEE 7时会很烦人。当你想要为测试包含一个JEE API的实现时,它也没什么用。
  • Infinispan tree API performance was not an issue. Infinispan树API性能不是问题。
  • We replaced the JMX-Console scripts with DMR scripts. 我们用DMR脚本替换了JMX-Console脚本。

Update 2 更新2

  • There is a deadlock when using EJB remoting over SSL. 在SSL上使用EJB远程处理时存在死锁 This deadlock is present even in EAP 6.2. 即使在EAP 6.2中也存在此死锁。 We're now at the point when we have quite a patch set of features backported from WildFly to AS 7. 我们现在正处于从WildFly向AS 7反向移植的一系列补丁功能的时候。

Is everything working on JBoss 5.1.0 for you? 一切都在为JBoss 5.1.0工作吗? Is your performance something you can live with? 你的表现是否可以与你一起生活?

I'm currently in the middle of upgrading from JBoss 5.1.0GA to JBoss 7.1.1 and it has not been easy at all. 我目前正处于从JBoss 5.1.0GA升级到JBoss 7.1.1的过程中,并不容易。 You're basically upgrading to a new application server. 您基本上是升级到新的应用程序服务器。 You will need to budget a lot of dollars for this effort I'm guessing. 你需要为这项努力预算很多钱。

Having said that JBoss 7.1.1 is VERY fast compared to 5.1.0 (start up times at least). 虽然说JBoss 7.1.1与5.1.0相比非常快(至少启动时间)。 I think in the next 6 months (or so) most of the "hard" migration and transition issues will be fleshed out in the jboss forums or through bug fixes. 我认为在接下来的6个月(或左右)中,大多数“硬”迁移和过渡问题将在jboss论坛或通过错误修复中充实。 At that point you and your team can reevaluate if you want to do the migration. 此时,如果您想进行迁移,您和您的团队可以重新评估。

Good luck! 祝好运!

If you are using SSL, one advantage to upgrading is that JBoss 7.1.1 runs on jdk 1.7, which has support for TLS 1.1 & 1.2, while jdk 1.6 only supports up to TLS 1.0. 如果您使用SSL,升级的一个优点是JBoss 7.1.1在jdk 1.7上运行,它支持TLS 1.1和1.2,而jdk 1.6仅支持TLS 1.0。 JBoss 5 will not run on java 1.7 so you are susceptible to a BEAST attack. JBoss 5不能在java 1.7上运行,因此您容易受到BEAST攻击。

Regardless, I'd wait a bit. 无论如何,我等一下。

AS 5 is a EE5 server, AS 7.1 is a EE6 server (and EE6 spec came out in 2009). AS 5是EE5服务器,AS 7.1是EE6服务器(EE6规范于2009年发布)。 So that's alot of work for an excellent new runtime environment, but it won't give you any hot architectural possibilities. 这对于一个出色的新运行时环境来说有很多工作,但它不会给你任何热门的架构可能性。

The WildFly 8.0.0.CR1 is already due and that's EE7 server bringing you a bunch of new interesting developing possibilitites, like WebSockets and JAX-RS 2.0 ( http://www.slideshare.net/dandreadis/2013-11devoxxwild-flybof ). WildFly 8.0.0.CR1已经到期,而EE7服务器为您带来了一堆新的有趣的开发可能性,如WebSockets和JAX-RS 2.0( http://www.slideshare.net/dandreadis/2013-11devoxxwild-flybof ) 。 New admin features like Single Instance Patching. 新的管理功能,如单实例修补。 And it's not sure that AS7-to-WildFly8 will be a super-easy migration since som major new stuff is introduced, like Undertow instead of JBossWeb/Tomcat. 并且不确定AS7-to-WildFly8将是一个超级简单的迁移,因为引入了主要的新东西,如Undertow而不是JBossWeb / Tomcat。

If you gotta go, you gotta go - and if U wind down the dead 7.x path, don't forget to get your hands on the much improved 7.2.0.Final tag (several hundred issues better that 7.1.1). 如果你必须离开,你必须离开 - 如果你绕过死亡的7.x路径,不要忘记接受改进的7.2.0.Final标签(比7.1.1好几百个问题)。 But if you think you can start developing/migrating now using Beta/CR releases and wait some months for a nice production-stable WildFly 8.xx release, you might be able to sit tight longer before next major update. 但是如果你认为你现在可以开始使用Beta / CR版本开发/迁移并等待几个月来制作一个生产稳定的WildFly 8.xx版本,那么你可以在下次重大更新之前保持更长时间。

br, Jens br,Jens

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM