我为啥放弃Jboss和Jboss社区

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我为啥放弃Jboss和Jboss社区相关的知识,希望对你有一定的参考价值。

  jboss在那个年代确实很火,很多大行的项目中都在使用jboss,我在过的两家支付公司就使用过jboss,在后来的一家支付公司我在推进去jboss化的工作。
  从我了解到的情况,现在仍然在使用使用jboss的大概有这么几种情况
  a. 老系统就跑在jboss上,遗留项目,没人想动,没人敢动。
  b. 为了降低成本从weblogic或websphare迁移到jboss上
  c. 依然顽固不化不思进取的技术决策者(我已经不在顽固 )
  d. 被销售人员忽悠的傻大憨粗的政府部门和国有企业
  (2)jboss真的那么不堪吗? NO !
  当然不是,从jboss 5 -->jboss6-->jboss7--->wildfly(相当于jboss 7,8),一步一步都在进步,尤其是在jboss7 ,完全重写了jboss的所有,我还记得当初 jboss7 alpha1 出来后,我完全看完了jboss 7源代码,jboss7各个模块的加载过程和加载机制,很壮观!
  我的观点是:Jboss包括现在的wildfly在技术上是先进的,甚至要好于weblogic和websphare,但是,在理念上已经过时或者错误。
  包括jboss(wildfly),weblogic,websphare在内所有的javaEE服务器,将所有的功能都集成进入服务器(jsf ,jpa,ejb,jta,jms,jndi,jms,cache),但现实中在用的javaee服务器的功能有几个内,很多的项目都是只用到了一个servlet容器,但是还是将应用部署到了Jboss服务器里去了,我觉得一点没有必要。
  我唱衰的不仅是jboss也包括 weblogic, websphare 这样的java EE全栈服务器,如果一个简单的应用只需需要一个 servlet容器,但是仍然部署到jboss中的,有如下几个问题:
  a.jboss启动需要占用更大的内存(jboss7以后按模块加载会好些),如果买云服务那内存可不便宜
  b.jboss会在同时启动很多的端口(有端口洁癖的人心里很不爽)
  c.配置复杂,在配置上花的时间和精力有可能比在代码业务逻辑上花的时间还多。
  d.jboss性能不及tomcat,jboss性能好过tomcat那是销售的外交辞令,只要会调优tomcat 性能会好过jboss的。
  e.jboss 提供的负载均衡器mod_cluster虽然智能但是性能不会好过nginx。jboss+mod_cluster 我认为不如果 tomcat+nginx
  (3) 我对jboss社区的反感:
  jboss社区人文环境其实不错,但有一点我不喜欢,那就是"自恋"
  jboss社区什么都想使用社区以有的项目,社区的其他项目都喜欢依赖jboss社区的其他项目,我知道他们想打造生态系统,但是没有本着简约的理念来做。
  比如:HornetQ默认使用jboss-logging 包,输出日志,infinispan也是这样,ovirt.org 项目使用jboss作为服务器,太依赖fedora,你能用tomcat为什么非要用jboss,是为了用而用,ovirt 项目中使用jboss 使用ejb3.1 ,导致很多不喜欢ejb的社区开发人员不贡献,只能靠红帽提供支持的开发人员推进项目。
  jboss更名:将jboss更名为wildfly 官方的说法是问了人们更好的区分jboss社区版和企业版,现在jboss名称默认是指jboss EAP , 开源版才叫 wildfly ,我觉得这个馊主意一定是红帽销售人员出的,为了能让jboss企业版买的更好而将jboss社区版更名为wildfly,这是愚蠢的做法,现在越来越少的人知道wildfly,我认为开发人员对这点是反感的至少我是。
参考技术A

Jboss是 web服务器的一种,主要做ejb容器,和tomcat集成就可以jsp,servlet,ejb通吃了

Jboss有两种版本,一种是独立的,一种是和tomcat集成的,当然都是免费的啦

EJB(enterprise javabean),他不是javabean简单的升级,而是一些提供分布式访问的类

包括实体bean,会话bean,消息驱动bean

以上是关于我为啥放弃Jboss和Jboss社区的主要内容,如果未能解决你的问题,请参考以下文章

驳狗屎文 "我为啥放弃Go语言

JBoss 线程 - JMX 与 Java Visual VM - 报告不同的结果 - 为啥?

CentOS 7为啥放弃了MySQL,而改使用MariaDB

为啥wildfly17服务器显示403 jboss 6.X在我的系统中完美运行?

首次使用JBoss流程(windows下)

为啥从 Tomcat 6.0 移植 JBoss-7.2.0 应用程序后无法运行?