5

하나의 GlassFish 서버 (v 3.1) 당 약 100 명의 고객을위한 호스팅 환경을 설정해야합니다. 각 고객은 서로 독립적으로 실행할 수있는 사용자 지정 구성 응용 프로그램이 필요합니다. (JDBC, JMS, 단일 응용 프로그램 재시작 가능성) 750MB RAM을 사용하는 100 개의 JVM을 실행하면 좋은 생각처럼 들리지 않으므로 단일 가상 시스템을 실행하는 것이 좋습니다.다중 인스턴스 GlassFish 응용 프로그램 서버의 응용 프로그램 아키텍처 및 배포

지금까지 나는 다음과 같은 솔루션을 테스트했지만, 불행하게도,이 중 어느 것도 내 요구 사항을 충족 : 별도의 도메인에

  1. 배포 응용 프로그램입니다. 이 솔루션은 때문에 JVM 램 사용량과 동일한 도메인에 (우리가 그 정도 분리가 필요하지 않습니다) (글래스 피시에라는 목표) 여러 인스턴스에 응용 프로그램을 배포

  2. 여러 포트에 여러 관리 콘솔을 실행하는 복잡성의 부족이었다. 이 솔루션은 인스턴스마다 별도의 JVM 프로세스를 생성하고 너무 많은 RAM (각 인스턴스 당 수백 MB)을 소비하기 때문에 충분하지 않았습니다. 그렇지 않으면 우리가 필요한 것에 가장 가깝습니다.

  3. 동일한 인스턴스의 여러 가상 호스트에 응용 프로그램을 배포하는 중입니다. Glassfish에서는 각 가상 서버마다 별도의 구성이 없기 때문에이 솔루션은 받아 들일 수 없습니다.

누구나 GlassFish를 사용하여 여러 응용 프로그램 인스턴스를 호스팅하는 것이 가장 좋습니다. 고객 당 1GB의 RAM을 예약해야 할 운명입니까? IIS 환경에서 우리는 시작할 때 3-5MB의 RAM을 사용하는 별도의 응용 프로그램 풀을 사용했습니다.


내 응용 프로그램 내 의존성 및 공유에 대해

UPDATE

: 나는 Glassfisf 서버에 실현하려는 아이디어에서 는 각 응용 프로그램은 별도의 자원 (JMS 및 JDBC)를 필요로한다. 이것은 문제가 아니며 하나의 인스턴스에서 사용할 수있는 가상 호스트마다 응용 프로그램별로 사용자 정의 할 수 있습니다 (HTTP 요청에서 서버 이름을 가져 와서 가상 서버를 인식 할 수 있으며 별도의 자원과 인스턴스 파일을 구성하여이 특정 구성에 구성을 적용 할 수 있음). 가상 서버).

내 '독립성의 requrements'는 다음과 같습니다

  1. 은 단순히 하나 개 글래스 피시 인스턴스에서 여러 응용 프로그램을 배포하고 별도의 Java 프로세스에 있지만 같은 자바 가상 머신에서 실행할 수 할 수 있어야합니다.
  2. 각 응용 프로그램을 서로 독립적으로 시작/중지 할 수 있어야합니다.
  3. 하나의 응용 프로그램을 다시로드 할 수 있어야하고 다른 응용 프로그램을 활성 상태로 유지해야합니다 (IIS에서는이 옵션을 '응용 프로그램 풀 재활용'이라고 함).
  4. 한 응용 프로그램의 버그가있는 경우 동일한 서버/인스턴스의 다른 고객 응용 프로그램에 영향을 미치지 않아야합니다. 다른 응용 프로그램의 shoud는 계속 작동합니다 (물론이 버그가 전체 Java VM을 망칠 수없는 경우).

수백 개의 응용 프로그램이 배포 된 하나의 Glassfish 인스턴스에서이 아이디어를 실현할 수 있습니까 (인스턴스/가상 호스트에서 사용 가능)? 어쩌면 다른 이름으로 응용 프로그램을 배포하는 것 (예 : home.java.net/node/676678)을 사용하면 좋은 해결책이 될 수 있습니까?다른 사람이 동일한 응용 프로그램을 100 배 배포 한 경험이 있습니까?

감사합니다,

Olgierd

+0

누군가이 질문에 대한 토론에 관심이있는 경우 , 더 성공적으로 여기 게시되었습니다 : http://www.java.net/forum/topic/glassfish/glassfish/multiinstance-appliciation-architecture-and-deployment-glassfish-app-server?force=691 – rsc

답변

1

당신은 이제이 제품은 OSGi 아키텍처의 이점을 취할 리팩토링 것을 알 것이다 GF 3 스택 ..를 사용하는 경우는 번들 또는 .wab를 파일을 배포 할 수 있습니다

  • 이 다른 모듈의 버전
  • 중지/재시작 응용 프로그램을 독립적으로
  • 관리 : GF3.This 아키텍처 (웹 응용 프로그램 모음)을 가능하게 할 것이다
  • 은 ... 파마 세대 공간의 낭비를 방지 응용 프로그램에 대한

을 일반적인 번들을 제공하지만, 귀하의 질문에 나는 하나의 자바 가상 머신과 다른 프로세스를 모델링하는 방법을 이해할 수 없다 .... 하나 가상 머신 (OS 수준에서) 한 과정을 의미하고 당신은에 대한 아무것도 할 수 없습니다 ..

은 OSGi 플랫폼은 응용 프로그램 및 소프트웨어 모듈화에 대한 SLA 요구 사항에 대한 당신 많은 장점 ... HTH 제롬을 제공합니다

+0

질문은 GF에서 다중 인스턴스 아키텍처를 구현할 수 있는지 여부 AFAIK OSGi 또한 도움이되지 않습니다. 다음과 같이 다중 점유 아키텍처가 자연 스럽습니다 (http://en.wikipedia.org/wiki/Multitenancy). – rsc