문제

우리는 Weblogic Server에서 만들기 위해 많은 Spring 웹 응용 프로그램을 가지고 있으며 전쟁이 언제 귀에 들어가야하는지, 그리고 언제 전쟁으로 존재 해야하는지 궁금합니다. 때때로, 전쟁은 일반적인 논리 항아리에 접근해야 할 것이지만, 전쟁에 포장 될 수있을 때 왜 이것이 귀에 들어가야하는지 알 수 없습니다.

내가 이해 한 바에 따르면, 여러 전쟁이 귀에 있고 그 전쟁 중 하나를 수정해야한다면 서버를 업데이트하려면 귀 전체를 재배치해야합니다. 이로 인해 모든 전쟁이 튀어 나옵니다. 그러나 그들이 귀에 있지 않았다면, 나는 단지 한 번의 전쟁을 업데이트 할 수 있었고 그것은 유일한 전쟁 일 것입니다.

100 개의 다른 전쟁 파일을 혼자 서서 포장 된 항아리와 공유 라이브러리 (Weblogic 사용)를 사용하는 것이 잘못된 것은 무엇입니까?

통찰력에 감사드립니다!

도움이 되었습니까?

해결책

전쟁 파일 만 있으면 귀는 유용성이 제한되어 있으며 전쟁을위한 배치 컨테이너로만 사용됩니다. 이런 식으로 전쟁 사이에 항아리를 공유함으로써 약간의 부풀어 오르는 것을 절약 할 수 있지만 그 자체로는 크게 설득력이 없습니다.

그러나 전쟁, EJBS, JMS, JCA 리소스 등을 사용하는 전체 Javaee/J2EE 응용 프로그램을 다룰 때 귀는 필수적입니다. 이러한 종류의 응용 프로그램의 구성 요소 간의 상호 작용 및 종속성은 귀에서 관리하기가 훨씬 쉽습니다.

그러나 Weblogic을 사용하는 것이 전쟁 컨테이너라면 Tomcat 또는 Jetty와 같은 바닐라 서블릿 컨테이너를 사용할 수도 있습니다.

다른 팁

나는 코멘트에 대한 거의 모든 Skaffman의 (일반적으로) 지점에 동의합니다.

EJBS없이 Spring을 사용하는 경우 물론 전쟁 파일을 고수 할 수 있습니다. 내가 볼 수있는 귀가 필요하지 않습니다.

그러나 스프링 앱이 메시지 중심의 pojos를 사용하는 경우 Weblogic에 전쟁 파일을 배포하여 JMS를 활용할 수있는 위치를 확인할 수 있습니다.

EJBS 또는 JCA가 있으면 귀가 필요할 수 있지만 JMS가 귀를 의무화한다고 말하지는 않습니다. 나는 JMS를 사용하고 Weblogic에 전쟁 파일을 배치했으며 잘 작동했습니다.

Tomcat과 함께 가서 전쟁을 배치하기로 결정한 경우 ActiveMQ를 사용하는 경우 여전히 JMS 기능을 유지할 수 있습니다.

내 마지막 고용주가했던 상황, 여러 전쟁에서 사용되는 일반적인 도서관 항아리 세트가 있고 항아리 컬렉션의 규모가 상당한 상황에 빠지면 여러 전쟁을 귀에 포장한다는 주장은 설득력이있을 수 있습니다. . 우리의 특정 상황에서, 총 3 개의 전쟁의 총 크기는 각 전쟁에 총 124MB에 이르렀습니다. 항아리를 귀에 위치시키고 각 전쟁의 클래스 경로를 구성하여 항아리를 사용하여 3 개의 전쟁이 포함 된 귀의 발자국이 40MB로 줄어 듭니다. 나는 그것을 설득력있는 이유라고 생각합니다.

항아리 (또는 항아리 세트)가 항상 Weblogic에 "라이브러리"로 배치 될 수 있으므로 모든 공유 라이브러리를 갖는 것이 귀를 향해 갈 수있는 강력한 이유가되어서는 안됩니다. 따라서 모든 전쟁에서 공유 할 수 있습니다. 맞지 않습니까?

실제로 전쟁을 배치하는 데 실제로 잘못된 것은 없으며 개발자는 가능한 한 빨리 작업을 충족시키는 데 관심이 있습니다. 즉, 그들은 종종 기술 부채를 취할 것이며, 그들이 존경할만한 팀에 있다면, 그 부채를 청소할 것입니다.

그러나 이것은 귀의 복잡성을 피하고 응용 프로그램 서버에 추가하여 항아리를 공유 할 때 문제가 발생합니다. 전쟁 유일한 팀에서 훨씬 더 일반적으로 모든 종류의 응용 프로그램 복잡성을 응용 프로그램 서버에 오프로드하는 것입니다. 단순히 구현하기가 더 쉬웠 기 때문에 종종 과도하게 할당 된 일정에서. 나는 이것에 대해 전혀 비난하지 않지만 이제 우리는 새로운 문제가 있습니다. 표준 애플리케이션 서버를 사용할 수 없으므로 시스템 측면 사용자 지정을 수행해야합니다. 효과적으로 웹 애플리케이션은 시스템 전체에서 출혈하고 있습니다. 응용 프로그램 서버를 유지하는 사람은 이제 응용 프로그램 특정 세부 정보를 알아야합니다 ... 엔터프라이즈 환경에서는 매우 명확한 문제가 발생합니다.

그런 다음 개발자는 시스템 책임을 맡을 수 있지만 마감일을 계속 충족해야합니다. 그들은 필연적으로 OS 전역에서 피를 흘리며 갑자기 개발자가 유일한 관리자입니다. 관리자가 애플리케이션이 시스템 측면에서 무엇을 사용하고 있는지 알지 못하면 큰 문제가 발생할 수 있습니다. 이 불분명 한 선은 항상 손가락으로 끝나고 양방향, 알려지지 않은 시스템 상태 및 팀 격리로 가리 킵니다.

그러면 귀를 사용해야합니까? 아니, 저는 시스템 엔지니어이므로 항상 다른 상용 응용 프로그램처럼 자체 애플리케이션 서버를 배포 할 수 있다고 말합니다. RPM 내부에서 전쟁을 배치하는 것이 다른 지원되는 응용 프로그램 서버와 마찬가지로 전쟁 배치 파이프 라인을 얻습니다. 그렇지 않다면 RPM은 모두 하나의 모든 것입니다 ... 한 번 팀이 비용을 외부화하지 못하게하면 귀는 좋은 아이디어가됩니다.

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