현재 새 프로젝트를 위한 Java EE 서버로 JBoss나 Glassfish(또는 다른 서버)를 사용하시겠습니까?[닫은]

StackOverflow https://stackoverflow.com/questions/277543

  •  07-07-2019
  •  | 
  •  

문제

약 1년 후에 완료될 새로운 Java EE 프로젝트를 오늘 시작했다면 어떤 애플리케이션 서버를 선택하시겠습니까? 그 이유는 무엇입니까?

답변에는 결정에 대한 주장이 포함되어야 합니다.또한 선택한 Java EE 서버와 시중에서 사용 가능한 다른 서버에 대한 경험이 얼마나 됩니까?우리 모두가 귀하의 답변에 포함된 조사와 생각에 대해 이해하고 있기 때문에 이는 흥미 롭습니다.

도움이 되었습니까?

해결책

저는 지난 10년 이상 동안 WebLogic, WebSphere, JBoss, GlassFish, Resin, Jetty, Tomcat 및 기타 몇 가지 제품을 사용해 왔습니다.그래서 새로운 프로젝트를 고려하고 있다면 먼저 스스로에게 몇 가지 질문을 던질 것입니다.내가 더 이상 의문을 제기하지 않을 한 가지는 엄마를 위해 울기 전까지 고문을 당하지 않는 한 JSP 사용을 단호하게 거부한다는 것입니다.

누군가의 명령으로 인해 특정 제품과 호환/배포해야 합니까?그들을 무시하거나 다르게 설득할 방법은 없는 걸까요?그렇다면 답이 있습니다.

EJB를 사용해야 합니까?정말?가능하다면 이를 피하세요. 실제로는 매우 대규모의 엔터프라이즈급 시스템에만 필요합니다.그것들은 단지 도구일 뿐이라는 점을 기억하십시오(누가 "황금 망치"라고 말할 수 있습니까?).너무 많이 사용되기 때문에 실제로 필요한지 의문이 듭니다.꼭 필요한 경우에는 제가 가장 좋아하는 Jetty를 포함한 여러 옵션이 제거됩니다.

JMS, ESB 등과 같은 다른 주요 J2EE 기술을 사용해야 합니까?그렇다면, 정말로 그것 없이는 할 수 없으며, 다시 완전한 J2EE 컨테이너로 제한됩니다.예를 들어, BPM을 적용하기 전에 신중하게 생각하고 조사하고 AquaLogic BPM을 (거의) 어떤 희생을 치르더라도 피하십시오. 이는 극단적으로 보기 흉합니다.

완전한 J2EE 컨테이너를 꼭 사용해야 한다면 오픈 소스를 먼저 고려하십시오. 오픈 소스가 더 강력하고, 더 나은 지원을 제공하며, 더 비용 효율적이기 때문입니다.고객 기반이 더 크고 개방형 지원 상호 작용이 더 많기 때문에 더 나은 수정 사항을 더 빨리 얻는 경향이 있습니다.그러나 Resin은 미성숙하므로 GlassFish나 JBoss에 비해 피하고 싶습니다. 배포 및 지원에 문제가 있다는 것을 알았습니다.나는 더 넓은 고객 기반, 성숙도 등으로 인해 JBoss를 선호합니다.GlassFish는 자동화된 빌드/배포 프로세스에 통합하기가 어렵지만 일부 특정 기능(필요한 경우)에 더 좋을 수 있습니다.

Apache가 필요한 특별한 이유가 있나요?그런 다음 아마도 Tomcat에 더 많은 것을 기대하십시오.

서블릿만으로 할 수 있나요?그렇다면 가장 가볍고, 빠르고, 쉽고, 유연한 솔루션인 Jetty를 사용하겠습니다.Jetty를 사용하는 것에 반대한다면 그 이유에 대한 모든 가정에 의문을 제기할 것입니다.YAGNI가 적용됩니다.

가장 좋은 방법은 Jetty에서 StringTemplate/WebStringTemplate을 사용하는 것입니다.라이센스 비용, 탄탄한 평판 및 지원 등이 없는 깨끗하고 강력하며 빠르고 유지 관리 가능한 솔루션입니다.요즘은 거기서부터 시작합니다.

대부분의 애플리케이션/시스템은 실제로 필요한 것은 적절한 아키텍처/디자인을 갖춘 서블릿과 JDBC뿐인데도 멋진 J2EE 기능을 많이 선택합니다.왜 더 필요하다고 생각하는지 질문해 보세요.

본격적인 컨테이너 중에서 주요 공개 웹사이트를 지원하지 않는 한 WebLogic과 WebSphere는 피하겠습니다. (제 현재 고용주의 웹사이트는 WebLogic에 배포되어 있으며 한 달에 1,100만 건 이상의 조회수가 발생하고 다른 웹사이트도 비슷합니다.)WebLogic의 진정한 명성은 상대적으로 쉬운 클러스터링이지만 (거의) 모든 비용을 들여 독점적인 공급업체 종속 기능을 피한다는 것입니다.WebSphere는 어떤 대가를 치르더라도 말 그대로 피하고 싶은 악몽일 뿐입니다. 저는 과거에 몇 가지 작업을 수행한 후에는 WebSphere와 관련된 프로젝트를 거부합니다.독점 기능을 사용해야 하는 특별한 요구 사항이 있는 경우를 제외하고는 두 제품 모두 막대한 라이센스 비용을 지불할 가치가 없습니다.Fortune지 선정 500대 기업의 수석 설계자/엔지니어로 10년 동안 일했지만 아직 그러한 필요성을 본 적이 없습니다.반면에 나는 그러한 독점 제품을 선택하는 데서 많은 고통을 겪었습니다.

매우 크고 트래픽이 많은 공개 웹사이트의 경우에도 독점 제품은 여전히 ​​의심스럽습니다.차라리 좋은 하드웨어에 연간 수백만 달러의 라이센스 비용을 지출하고 소수의 정말 훌륭한 컨설턴트로부터 양질의 시간을 들여 간단한 확장성 솔루션을 해결하는 편이 낫습니다.그러면 연간 추가 수백만 달러를 사용하여 멋진 웹사이트에서 판매할 가치가 있는 제품을 생산할 수 있습니다.

편집하다:고려해야 할 또 다른 부분 ...

최근에 접한 테라코타.저는 모든 것을 다시 생각하고 있으며 이를 곧 중요한 시스템에 배포하려고 합니다.특히 Terracotta는 다른 어떤 것보다 클러스터링을 더 잘 수행하므로 더 이상 WebLogic의 클러스터링을 권장하지 않습니다.

다른 팁

"응용 프로그램 서버"라는 용어는 모호합니다. Glassfish V3를 사용하면 전통적인 웹 컨테이너로 작게 시작하고 Evolve (OSGI 및 간단한 "컨테이너 추가"기능을 사용하여 원하는 것을 추가하여 JPA, JAX-RS, EJB, JTA, JMS, ESB를 추가 할 수 있습니다. 등. -Alexis (태양)

내가 보통 스스로에게 묻는 첫 번째 질문은 "Tomcat과 함께 할 수 있습니까?"입니다. JMS 또는 JTA가 필요하기 때문에 대답이 아니요 인 경우 응용 프로그램 서버에 의지합니다.

약 3 년 전에 Weblogic 8을 Weblogic의 사용 편의성과 라이센스/비용 모델에 만족했습니다. 우리는 두 개의 프로젝트에 그것을 사용했습니다. 하나는 웹 서비스 였고 다른 하나는 포털이었습니다. 우리는 그 프로젝트 중 하나에서 Weblogic 또는 Weblogic Portal과 관련하여 어떤 문제를 일으키지 않았습니다.

지난 2 년 동안 저는 WebSphere와 함께 일했습니다. 내가 IBM과 협상 할 때마다, 그것은 항상 웹 로그에 해당하는 것보다 두 배나 많은 비용이 들었지만 기업 정책은 WebSphere를 사용해야했다. WebSphere의 학습 곡선이 Weblogic보다 상당히 가파른 것으로 나타 났으며 우리의 빌드/배포/테스트 수명주기는 시간이 너무 많아서 개발 환경에서 Tomcat을 사용했습니다. 그러나 WebSphere와 함께 가장 큰 문제는 우리가 다음 패치 릴리스로 업그레이드하여 새로운 문제를 파싱하는 Web.xml로 업그레이드 해야하는 버그를 만났을 때였습니다. 이 모든 일을 수행하는 데 48 시간의 교대가 필요했습니다.

지금은 Jboss를 사용하고 있습니다. 약 3 개월 전에 나는 Tomcat 및 Jetspeed 2와 함께 새로운 프로젝트를 시작하려고했지만 Jetspeed 2는 지금 약간 정체 된 것처럼 보이며 JBoss Portal 2.7.0은 JSR 286/Portlet 2.0 지원으로 방금 출시되었습니다. 나는 Jboss에게 스핀을 주었고 설정하고 관리하기가 매우 쉽다는 것을 알았습니다. 빌드/배포/테스트주기는 매우 빠르며 스프링 XML 파일을 어딘가에 변경하지 않으면 서버를 다시 시작할 필요가 없습니다.

나는 3-4 년 동안 JBoss를 사용해 왔습니다.

jboss에 대한 논쟁 :

  1. 오픈 소스.
  2. 상업적 지원 이용 가능.
  3. 크고 활발한 사용자 커뮤니티.

jboss에 대한 논쟁 :

  1. 일반 액세스가없고 지원되는 Java EE 5 컨테이너 릴리스.
  2. 많은 문서화이지만 장점; "어떻게 x를 수행합니까?"에 대한 답을 찾기가 어려울 수 있습니다.
  3. 다른 상업용 제품에 비해 4.x 가난한 관리 도구.

체크 아웃 Glassfish 3.1! 모듈 식 Java EE 6 기반 Glassfish V3 커널 위에 구축 된 버전 3.1은 클러스터링, 중앙 집중식 관리 및 고 가용성을 제공합니다.

인용하다 http://blogs.oracle.com/nazrul/entry/glassfish_3_1 자세한 사항은.

여기서 논의되지 않은 또 다른 요점은 성능입니다. 서비스 유형이나 사용자 수로 인해 우려되는 경우 다음이 적용됩니다.

  • Tomcat은 Glassfish보다 느린 것 같습니다
  • 유리 피쉬는 수지보다 느린 것 같습니다
  • 수지는 G-Wan + Java보다 훨씬 느립니다

G-Wan은 JVM만으로 의존합니다. 명시 적으로 지정되지 않는 한 더 이상 컨테이너를 사용하지 않으므로 웹 응용 프로그램의 성능 크리티컬 부분에 예약 할 수 있습니다.

G-WAN은 다른 언어 (C, C ++, C#, D, Objective-C)를 지원하므로 다른 작업을 위해 Java를 유지하면서 RAW C에서 응용 프로그램의 일부를 처리 할 수도 있습니다.

귀하의 선호 OS를 의사 결정 기준으로 포함시킬 수 있습니다. OS 및 APP 서버에 동일한 공급 업체를 사용하는 경우 지원하기가 더 쉬워야합니다. 이미 하나 또는 두 공급 업체와 관계가있는 경우 처리하기에 좋은지 고려하십시오.

기술적 인 관점에서 나는 더 최근의 혁신을 지원하기 때문에 Glassfish를 선택할 것입니다. 나는 jboss가 어쨌든 나쁘다고 생각하지 않습니다. 단순히 최신 정보가 아닙니다.

내 경험의 대부분은 Weblogic에 있지만 Jboss와 Glassfish를 사용했습니다. 방금 완전한 Sun 오픈 소스 스택 (Opensolaris, Glassfish, MySQL)에서 새 사이트를 출시했으며 사소한 좌절감만으로 훌륭한 경험이었습니다.

나는 여전히 Weblogic이 시장에서 최고의 Java EE 앱 서버라고 생각합니다. 라이센스 비용을 감당할 수 있다면 그만한 가치가 있다고 생각합니다.

Tomcat, Openejb 및 ActiveMQ를 결합하여 얼마나 멀리 갈 수 있는지에 놀랐습니다. 그것은 저에게 저렴한 대안 인 것 같습니다.

또한 Spring DM 서버를 살펴 보겠습니다. 그것은 Tomcat을 기반으로하지만, 그들이 추가 한 OSGI 작품은 짧은 순서로 어디에나있을 수 있다고 생각합니다. 스프링 프레임 워크와 같은 품질로 완료되면 실제로 매우 좋을 것입니다.

대안 : appserver를 전혀 사용하지 마십시오.

체크 아웃 http://www.atomikos.com/publications/j2eewithoutapplicationserver.

웹 프로젝트의 경우 JSP/JSF 또는 스트럿의 복잡성을 피하기 위해 개찰구와 같은 것과 결합 해야하는 경우 가벼운 웹 컨테이너를 유지하십시오.

HTH 남자

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top