애플리케이션을 그리드/클러스터 지원하는 데 가장 적합한 Java용 라이브러리는 무엇입니까?[닫은]

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

문제

이는 로드를 분산하고 추가 중복성을 제공하려는 의도로 서버 클러스터에서 애플리케이션을 실행하는 기능입니다.

나는 다음에 대한 프레젠테이션을 보았습니다. 그리드게인 나는 그것에 매우 감동했습니다.

다른 사람을 알고 있나요?

도움이 되었습니까?

해결책

몇 가지가 있습니다 :

이제 나는이 모든 것을 사용하지 않았지만 대부분을 사용하거나 조사했습니다.

Gridgain과 Gigaspaces는 더 중심적입니다 그리드 컴퓨팅 캐싱 및 (IMHO)보다 데이터 그리드보다 그리드를 계산하는 데 가장 적합한 (IMHO) 컴퓨팅 대 데이터 그리드에 대한이 설명). 나는 Gigaspaces가 정말 흥미로운 기술이라는 것을 알게되며 무료 버전 및 스타트 업을위한 무료 정식 버전을 포함한 여러 라이센스 옵션이 있습니다.

일관성과 테라코타는 캐시를 다음으로 취급하려고합니다 지도, 이것은 상당히 자연스러운 추상화입니다. 나는 일관성을 많이 사용했으며 훌륭한 고성능 제품이지만 저렴하지는 않습니다. 테라코타는 덜 익숙하지 않습니다. 일관성을위한 문서는 때때로 약간 부족하지만 실제로는 강력한 제품입니다.

Oscache 나는 주로 Java 웹 애플리케이션에서 메모리 사용 및 단편화를 줄이는 수단으로 주로 사용했습니다. 컴파일 된 JSP를 본 적이 있다면 많은 문자열 연결을 수행 할 것입니다. 이 태그를 사용하면 JSP 코드 세그먼트와 HTML의 결과를 단일 문자열로 효과적으로 캐시 할 수 있으며 경우에 따라 성능을 크게 향상시킬 수 있습니다.

Ehcache는 웹 애플리케이션에서도 사용한 쉬운 캐싱 솔루션입니다. 그래도 분산 캐시는 아니지만 그렇게 할 수 있습니다. 나는 그것을 빠르고 더러운 솔루션으로 간주하는 경향이 있지만 아마도 내 편견 일 것입니다.

Memcached는 특히 PHP 세계에서 프리 벨트입니다 (Facebook과 같은 사이트에서 사용). 정말 가볍고 쉬운 솔루션이며 동일한 프로세스에서 실행되지 않으며 다른 기술 스택과 더 나은 상호 운용성 옵션을 가질 수 있다는 이점이 있습니다.

다른 팁

Hazelcast도 확인해 보세요. 헤이즐캐스트 큐, 토픽, 맵, 세트, ​​목록, 잠금 및 실행기 서비스의 오픈 소스 트랜잭션 분산/분할 구현입니다.작업하기가 매우 쉽습니다.클래스 경로에 hazelcast.jar을 추가하고 코딩을 시작하세요.구성이 거의 필요하지 않습니다.

Runnable, Callable 작업을 분산 방식으로 실행하는 데 관심이 있다면 다음에서 Distributed Executor Service 설명서를 확인하십시오. http://code.google.com/docreader/#p=hazelcast

헤이즐캐스트 Apache 라이센스에 따라 출시되었으며 엔터프라이즈급 지원도 제공됩니다.

당신은 고려 했습니까? 인피니 스팬? jboss.org의 오픈 소스 데이터 그리드 플랫폼입니다. 자세한 내용은이 글을 읽는 것이 좋습니다 (old) 블로그 게시물 더 흥미로운 블로그 게시물과 함께 프로젝트 발표 최대 절전 모드와 함께 인피니 스팬 사용 그리고 a 독립형 캐시. 더 최근에 Red Hat의 엔터프라이즈 데이터 그리드. 거기 있습니다 빠른 "시작"가이드, a Dzone Refcard 심지어도 YouTube 비디오 :)

@Cletus의 요약이 꽤 좋다고 생각합니다. Terracotta는 맵 형태로 분산 캐시 이상을 제공한다고 언급하고 싶었습니다. IT는 Java 힙 및 동기화 프리미티브를 클러스터하여 동시 Java 프로그램을 분산 Java 프로그램으로 전환합니다. 오픈 소스 캐시 리브의 분산 버전 사용 포함) 또는 기타 여러 가지 작업을 수행 할 수 있습니다.

작업 배포의 경우 Terracotta 위에 작성된 추가 LIB가 있으며, 특히 Tim-Pipes (메시지)와 Tim-MasterWorker (마스터 워크 스타일 분포)는 Terracotta 위에 큰 추상화입니다. 이 라이브러리는 테라코타 포지에 있습니다.

최근에 추가 된이 페이지는 다른 잠재적 데이터 기술과 비교하여 약간의 추가 정보를 추가 할 수 있습니다.

JPPF 또한 좋습니다.

조금 더 낮은 수준으로 가고 싶다면 jgroups, 클러스터링 자바 프로세스의 기본 사항을 제공합니다.

또한 확인하십시오 사전 예방적인

목록에 추가 할 수있는 다른 하나는입니다 Appristry Cloudiq. 분산 컴퓨팅 환경입니다. a로 사용할 수 있습니다 무료 다운로드 최대 5 개의 기계. 하드웨어 고장의 경우 다른 기능 중에서도로드 분포와 자동 실패 작업이 포함됩니다.

그리드 컴퓨팅의 경우 고려할 수도 있습니다 아이스 그리드 또는 DataSynapse GridServer. 이들은 작업을 분배하기위한 매우 효과적인 메커니즘을 제공하고 실패 및 중복성을 제공합니다.

귀하의 질문은 다양한 방식으로 해석되었다고 생각합니다. 응용 프로그램을 "클러스터 활성화"하는 데 사용할 수있는 라이브러리에 대해 묻습니다.

위에서 지명 된 LIB 중 일부는 분산 캐싱과 같은 특정 클러스터 기능을 제공하는 데 도움이 될 수 있지만 작업 부하 관리를 가능하게하는보다 일반적인 방법은 J2EE 컨테이너를 사용하는 것입니다.

클러스터 된 컨테이너 인스턴스를 설정하면 HA 기능 및 작업 하중 관리를 활용할 수 있으므로 클러스터링은 응용 프로그램 수준에서 거의 투명합니다. 클러스터링 될 애플리케이션을 작성할 때 상태를 관리하는 방법을주의해야하기 때문에 거의 종류의 캐시를 구현 한 경우 각 컴퓨터에서 캐시 상태를 복제해야합니다.

좋은 출발점은 Glassfish를 다운로드하고 클러스터 된 Glassfish 인스턴스를 시도하고 설정하는 것입니다.

도움이되기를 바랍니다.

또한 확인하십시오 푸라

매우 늦은 답변입니다. 하지만 부분적으로는 애플리케이션이 구성된 방식에 따라 다릅니다.위의 접근 방식 중 하나를 사용하는 대신 원격으로 실행 파일을 실행하고 싶을 수도 있습니다.

링크가 부족해서 죄송합니다. 하지만 담당자가 늘어날 때까지 두 개 이상 게시할 수 없습니다.기울임꼴로 표시된 제품은 Google에서 쉽게 사용할 수 있어야 합니다.

매개변수 검색에서 실행 파일을 실행하려는 경우(예: 각 인스턴스에 대해 다양한 옵션을 사용하여 동일한 실행 파일을 실행하려는 경우) 기존 일괄 접근 방식이 잘 작동합니다.이는 여전히 널리 사용되고 있는 매우 전통적인 고성능 컴퓨팅 접근 방식입니다. 이를 기업 규모에서 처리하는 데 적합한 인프라는 다음과 같습니다. 플랫폼 LSF, DataSynapse 그리드서버, PBS 아니면 성숙해지면서 윈도우 HPC 서버.다음과 같은 오픈 소스 제품을 살펴볼 수도 있습니다. 글로버스 그리고 콘도르.앱의 크기에 따라 다음을 살펴볼 수도 있습니다. 글라이트, 이는 LHC와 같은 대규모 과학 프로젝트에 사용됩니다.

전통적인 HPC 접근 방식은 앱 코드를 컴퓨팅 인프라를 구성하는 프로세스에서 분리하는 이점이 있지만 성능 저하가 발생할 수 있으며, 다른 접근 방식은 처리량이 더 빠르지만 메모리 누수 및 가동 시간이 긴 시스템의 기타 문제가 발생하기 쉽습니다.

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