`
JeffreyJia
  • 浏览: 20751 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

我为什么放弃Jboss和Jboss社区

阅读更多

    1.我和jboss的结缘

   直到现在还清晰的记得当初在学校和同学一起在jboss 4.0.x 上使用ejb 3.0 将一条数据存进mysql数据库里的那种喜悦之情。

    我当初是在一个3、4线小城市上的大学,不像北上广这样的城市有个好的IT环境,在那里老师教的都是很多年没有变过的课程,和当时流行的技术根本不搭边,我记得我学过Pascal语言,呵呵,不知道现在谁还学过。那时候自己的一个梦想是等毕业了去做程序员,然后自学java,花了很多钱去买《java核心技术》 卷一和卷二,并且都看完了,现在回想那时候只是看完了其实都不怎么理解。  

     学完java语言就应该学习基于java语言的一些框架,那个时候身边没有人也没有已经上班的朋友做指导,没有人指导我应该先学习什么框架在学习什么框架,我没有办法就只能从简单的开始,从图书馆借jsp的书,这是我进入恶性循环的开始,每看一本书,它的前言就介绍自己的技术有多好,还介绍了其他的技术,比如,在jsp的书里都会介绍的tomcat , jsf,struts,resion 等,我学完了一本又按着它提到去学习其他的技术,就这样无休止的学习了,tomcat jsf struts resion, jsp,ejb,jboss,等等等等,那个时候都还比较迷信java ee 服务器,说jboss weblogic webspare 有多好等,EJB  有多好多好等,那我就信了,我开始了学习jboss和ejb的旅程。

 

    我学习还是比较刻苦的,现在还记得我经常抱着书在宿舍看到大半夜。 皱眉

     无论如何,就是在那是我我喜欢上了jboss和ejb 认为 jboss和ejb是很厉害的技术,哈哈。到后来毕业了,就一直在自己学习jboss和ejb,在后来的换工作找到了一个做jboss相关的工作。在这期间做了很多和jboss相关的是,包括学习和使用seam,jsf,jboss咨询,jboss培训(培训别人哦),jboss性能调优等。  也为大家众所周知的网站的生产系统安装了一百套jboss。

    也在jboss社区的其他项目上投入很多的时间和精力,如HornetQ,infinispan,mod_cluster,jboss seam。

 

    我还做了好几个关于jboss和seam的视频,我现在建议大家 不 要看了,我在后面阐述原因

     (1) jboss 相关:http://v.youku.com/v_show/id_XMjE3NDI3MzY4.html?f=5256556

     (2) seam 相关:http://v.youku.com/v_show/id_XMzIzMjQ5NTE2.html?f=16640771

 

2. 我的反思

    (1) 我对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,我认为开发人员对这点是反感的至少我是。

     (4) 我对seam的反思:

      a.jboss seam确实使用起来很方便,不用xml配置,有长对话,但是你使用seam的同时也一般会使用jsf, seam + JSF 在性能上不如springMVC 这个很确定,如果在 seam中使用restful ,你还要使用到 resteasy,那个配合起来和使用起来原没有 springMVC 爽。

     b. seam 早已停止维护,转而到apache 社区的DeltaSpike 项目,DeltaSpike项目进展缓慢,社区冷清,真正里能搞在生产项目上使用不知道到什么时候呢,DeltaSpike生态系统现在还没有建好。远不如spring 社区。

     c. 在项目中采用seam或DeltaSpike的需要面对一个现实,那就是在市场上招聘一个seam程序员很难的。

spring 程序员一抓一大把。这无形中给公司增加成本。

     d. seam 中所有的组件都是用注解,后来想想也不完全是好事,不如spring xml 配置,虽然配置麻烦些但是新人和初级开发人员很清晰的理清软件架构,如果是seam 各个标签什么意思,而且标签之间组合使用什么意思都得清楚才能动手开发,seam中太多隐藏知识点了。

    e. 我在以前发的博客里还说过,我的一个项目(连接我就不说了,以免有推广嫌疑)使用的seam开发的,在两个月一个人将这个项目全部用springMVC重写了,我强调了“我一个人” 是因为我身边的人就我一个人会seam,以后要找人一起开发这个项目还的让人家学习seam,况且这样的人也不好找,干脆我就重写了这个项目。

     (5) jboss社区还是有些好的项目的:

         netty 是个不错网络通讯的框架,如果你做手机socket通讯,建议你看看这个。

         jgroups 是个主要UDP通信的框架,如果你做局域网里的数据通讯建议你看看这个。

 

  3. 写在最后

      (1) 优秀的互联网公司一直都在使用轻量级的框架和服务器,这个趋势一个没有变过

      (2) 上班以来一直都是从技术社区上搜索知识,不怎么回馈给社区,这篇文章也算是对技术的一些感悟分享给大家(当然观点不一定正确)

      (3) 在自己从事开发7个年头,在这个自己一年内过的第二个农历生日的今天,在一个自己决心放下jboss的时候,写这篇文章也算是一个告别仪式吧!!!

 

17
6
分享到:
评论
15 楼 yizhyi 2014-11-22  
重写的时候前台框架是什么?
14 楼 hity 2014-11-21  
如果非要化简为繁就看你这么做的意义了。

truesmile 写道
hity 写道
同楼主一样,从weblogic--->websphare--->tomcat---->jetty这么一步步走过来,以前大尔全的一站式解决方案正在逐渐没落;java在web开发方面也在日渐势微;nginx反向代理配合简单的容器甚至不用容器已经能够很好的应付大多数互联网应用。EJB和大容器的诞生是为了解决分布式事务问题,但是我个人认为,这应该是数据库(包括云端数据库)以及数据库中间件要解决的问题,方向错了只会越走越远。

分布式事务不仅仅是数据库的分布式事务,比如消息也可以做成分布式事务的一部分,这个就和数据库没什么关系了。

13 楼 truesmile 2014-11-21  
hity 写道
同楼主一样,从weblogic--->websphare--->tomcat---->jetty这么一步步走过来,以前大尔全的一站式解决方案正在逐渐没落;java在web开发方面也在日渐势微;nginx反向代理配合简单的容器甚至不用容器已经能够很好的应付大多数互联网应用。EJB和大容器的诞生是为了解决分布式事务问题,但是我个人认为,这应该是数据库(包括云端数据库)以及数据库中间件要解决的问题,方向错了只会越走越远。

分布式事务不仅仅是数据库的分布式事务,比如消息也可以做成分布式事务的一部分,这个就和数据库没什么关系了。
12 楼 kualer 2014-11-21  
还在纠结着技术那个技术,是刚刚出道的人遇到的问题
11 楼 Vampiredx 2014-11-21  
软件,框架,组件,都是越轻量越好。越做越臃肿复杂的,必然遭抛弃。
10 楼 dongcb678 2014-11-21  
哎 ... 这玩意儿真不是主流
9 楼 handong890 2014-11-21  
websphere liberty 已经把很多J2EE 功能插件化了 只选择用户需要的。不过我个人最近很看好nodejs
8 楼 dieslrae 2014-11-21  
上次尝试用jgroups做缓存同步,结果照着度娘给的做法做无法广播到同一网段不同ip的应用,不知道LZ有相关的资料没?
7 楼 Tyrion 2014-11-20  
现在还有多少要用EJB的项目。。
6 楼 wangcgen 2014-11-20  
10年时候用过Jboss,也是由于使用了EJB的缘故,很不喜欢它那一套,不上不下。
5 楼 fally 2014-11-20  
jboss更名确实是一个比较愚蠢的决定。
4 楼 empireghost 2014-11-20  
说的有道理
就像 写个小例子  觉得hibernate  比mybatis好用
但是一般大公司互联网公司都使用mybatis  没有使用hibernate的
3 楼 hity 2014-11-20  
同楼主一样,从weblogic--->websphare--->tomcat---->jetty这么一步步走过来,以前大尔全的一站式解决方案正在逐渐没落;java在web开发方面也在日渐势微;nginx反向代理配合简单的容器甚至不用容器已经能够很好的应付大多数互联网应用。EJB和大容器的诞生是为了解决分布式事务问题,但是我个人认为,这应该是数据库(包括云端数据库)以及数据库中间件要解决的问题,方向错了只会越走越远。
2 楼 xouou_53320 2014-11-20  
有一丝蛋蛋的忧伤夹带着一种一往无前的正能量划破天际 正如流星赶月搬扑面而来 让我情不自禁地顶起
1 楼 tangduDream 2014-11-20  
向哥们致敬

相关推荐

    JBOSS,JBoss安装部署

    访问Red Hat的官方网站或者JBoss社区网站,选择合适的JBoss版本进行下载。常见的版本有JBoss EAP(Enterprise Application Platform)和WildFly,两者都是企业级的Java应用服务器,但EAP是商业版,WildFly是其社区...

    jboss 下载(httpwww.jboss.org)

    JBoss 是一个开源的、基于 J2EE(Java 2 Platform, Enterprise Edition)的应用服务器,由全球开发者社区共同维护和开发。它最初以 LGPL 许可协议发布,允许商业应用免费使用。2006年,JBoss 被著名的开源公司 Red ...

    jboss7.1 linux版本

    CLI允许用户执行各种管理任务,如部署应用、配置服务和查看服务器状态,而Management API则为开发者提供了自动化管理的途径。 4. **多线程模型**:JBoss AS 7.1引入了基于工作窃取的多线程模型,优化了并发处理,...

    jboss-4.0.5.GA.zip

    JBoss是著名的开源Java应用服务器,它基于Java EE(Enterprise Edition)规范,为开发者提供了全面的中间件服务。4.0.5.GA版本是JBoss的一个稳定版本,发布于2006年,适用于那些需要可靠且成熟的Java应用程序部署的...

    Jboss7官方手册

    手册的作者Francesco Marchioni是一位拥有Sun认证的企业架构师,他的工作经验非常丰富,自2000年加入JBoss社区以来,他一直参与和见证了JBoss AS的发展和变革。因此,该手册不仅介绍了JBoss AS7的使用方法,还包含了...

    JBoss4 Guide 中文

    JBoss4作为开源项目,其社区活跃,提供了丰富的资源和支持。对于希望采用开源解决方案的企业,JBoss4及其周边生态提供了专业的咨询服务,帮助企业在开源技术的选择、实施和运维上做出明智决策,减少风险,提高效率。...

    jboss-服务器下载

    JBoss由Red Hat公司维护,是Java开发者社区中的热门选择,因为它提供了免费且功能强大的平台来部署和管理Java应用程序。它支持多种Java EE规范,如Servlets、JSP、EJB 3.1、JPA、JSF等,使得开发者能够构建可扩展、...

    JbossTools for Eclipse4.5.2

    而JBoss Tools则是Eclipse的一个重要扩展,专为Java EE和Red Hat企业级应用开发提供了丰富的工具支持。在这一版本——JBoss Tools for Eclipse 4.5.2中,我们看到了对Eclipse Mars版本的完美适配,进一步提升了开发...

    jboss集群完整介绍

    以JBoss4.2.3GA为例,其不仅稳定性强,且社区支持广泛,是构建集群的理想版本。 #### 五、Jboss Cluster实现 在Jboss集群中,WebCluster尤为关键,它涉及到负载均衡和状态同步两个核心概念。负载均衡策略可根据...

    jboss-eap-7.2.0.zip

    JBoss EAP(Enterprise Application Platform)是Red Hat公司推出的一款开源、基于Java EE(现在称为Jakarta EE)的应用服务器,它为企业级应用程序提供了稳定、安全和可扩展的运行环境。版本7.2.0是该平台的一个...

    JBoss5.pdf

    JBoss Enterprise Application Platform(简称JBoss EAP)是JBoss应用服务器的一个企业版,它提供了一系列增强特性和高级管理功能,旨在为大型企业用户提供稳定、可靠和高性能的运行环境。 Hibernate是一个流行的...

    jboss发布为window服务

    将JBoss发布为Windows服务意味着你可以通过Windows的服务控制台启动、停止和管理JBoss实例,无需每次都手动运行命令行。下面将详细介绍如何在Windows上将JBoss配置为服务,并提供一些关键知识点。 1. **下载与安装*...

    JBOSS7学习笔记

    2. **基于AS7的基础架构**:JBoss7是基于AS7构建的,AS7放弃了传统的Classloading和Service Bootstrap机制,转而采用了一种名为"Unified Class Loading"的新模型,这极大地提升了启动速度和内存管理效率。...

    jboss portal

    #### 五、为什么选择 JBoss Portal 1. **开源与标准支持**:基于开放源代码和标准的技术栈,使得企业能够更加灵活地定制和扩展门户的功能。 2. **强大的社区支持**:作为 JBoss.org 开发者社区的一部分,JBoss ...

    jboss-4.0.2.zip

    JBoss社区提供了丰富的文档和讨论论坛,帮助用户解决问题,学习如何使用和优化JBoss 4.0.2。 10. **升级与迁移** 虽然JBoss 4.0.2是一个较老的版本,但理解它的架构和工作原理对于理解后续版本,如JBoss AS 5、6...

    jboss开发技术文档

    《JBoss开发技术文档》是针对企业级应用服务器JBoss的详细指南,旨在帮助开发者深入理解和熟练运用这一...此外,随着版本迭代,JBoss已发展为WildFly,其特性和服务也有所扩展,学习最新的官方文档和社区资源至关重要。

    jboss-5.0工具

    总的来说,JBoss 5.0 工具集为 Java 开发者和系统管理员提供了全面的支持,涵盖了从开发、测试到生产的各个环节。尽管现在 JBoss 已经发展到了更高版本,但对 JBoss 5.0 的理解仍然有助于我们理解中间件的基本概念和...

    JBOSS架构分析.doc

    【JBoss架构分析】 JBoss是一个开源的J2EE应用...总的来说,JBoss的架构设计体现了开放源代码社区对高效、灵活和可维护性的追求,而对其深入分析有助于开发者和系统管理员提升他们的应用性能,并确保系统的可靠性。

Global site tag (gtag.js) - Google Analytics