JavaEE Application Server or Lightweight Container?

Let me preface this by saying that this is not my real situation, but I am asking this question more for my own knowledge and for other people's input here.

I used both Spring and EJB3 / JBoss and for the small types of applications I built Spring (+ Tomcat if needed) was much easier to use. However, when scaling to larger applications that require features such as load balancing and clustering, is there still a viable Spring solution? Or is it time to turn to a solution like EJB3 / JBoss when you start getting big enough to need it? I'm not sure how well I have covered the problem well enough to get a good answer, so please let me know.

Thanks, Jeff

+2


a source to share


2 answers


Tomcat can be clustered .

Load balancing is usually a hardware solution (such as BigIP or Cisco ACE) that is independent of the application server.



Spring can be enterprise like EJB. There is no dividing line that says Spring cannot handle it.

+2


a source


I could say that in our project, which is quite large (~ 500K LOC), we got rid of JBoss in favor of Spring / Tomcat for the sake of performance.

One of the components of the J2EE Application container (and JBoss, as an implementation) is the ability to transparently distribute transactions between different kinds of transactional resources. This is a great idea and it makes it easier to coordinate, say, JMS messages and database operations. But when it comes to high need for everything, this becomes a problem. Unfortunately, distributed transactions are slow.



It is not easy to migrate from JBoss to Spring, but it is possible, and Spring / Tomcat can, with few exceptions, be considered a fully functional replacement for JBoss.

+1


a source







All Articles