개요
Java 씬 클라이언트는 표준 소켓 연결을 통해 클러스터에 연결하는 경량 클라이언트입니다. 클러스터 토폴로지의 일부가되지 않으며 데이터를 보유하지 않으며 계산 계산의 대상으로 사용되지 않습니다. 씬 클라이언트는 단순히 표준 노드에 대한 소켓 연결을 설정하고 해당 노드를 통해 모든 작업을 수행합니다.
설정
maven 또는 gradle을 사용하는 경우 ignite-core애플리케이션에 종속성을 추가하십시오 .
또는 ignite-core-2.9.0.jarIgnite 배포 패키지 의 라이브러리를 사용할 수 있습니다 .
클러스터에 연결
씬 클라이언트를 초기화하려면 Ignition.startClient(ClientConfiguration)방법을 사용하십시오 . 이 메서드는 ClientConfiguration클라이언트 연결 매개 변수를 정의 하는 개체를 받습니다 .
이 메서드는 IgniteClient데이터에 액세스하기위한 다양한 메서드를 제공 하는 인터페이스를 반환합니다 . IgniteClient자동으로 닫을 수있는 리소스입니다. 사용 시도 -과 - 자원 연결과 관련된 자원을 씬 클라이언트를 닫고 해제 문을.
위의 코드는 서버 노드 장애시 장애 조치 메커니즘을 제공합니다. 자세한 내용은 노드 장애 처리 섹션을 참조하십시오.
파티션 인식
파티션 인식을 통해 씬 클라이언트는 쿼리 된 데이터를 소유 한 노드에 쿼리 요청을 직접 보낼 수 있습니다.
파티션 인식없이 씬 클라이언트를 통해 클러스터에 연결된 애플리케이션은 들어오는 요청에 대한 프록시 역할을하는 단일 서버 노드를 통해 모든 쿼리와 작업을 실행합니다. 그런 다음 이러한 작업은 요청중인 데이터를 저장하는 노드로 다시 라우팅됩니다. 이로 인해 응용 프로그램이 선형으로 확장되는 것을 방해 할 수있는 병목 현상이 발생합니다.
쿼리가 올바른 노드로 라우팅되는 프록시 서버 노드를 통과해야하는 방법에 유의하십시오.
파티션 인식을 사용하면 씬 클라이언트는 쿼리에 필요한 데이터를 소유하는 기본 노드로 쿼리 및 작업을 직접 라우팅 할 수 있습니다. 이렇게하면 병목 현상이 제거되어 애플리케이션을보다 쉽게 확장 할 수 있습니다.
키-값 API 사용
Java 씬 클라이언트는 씩 클라이언트에서 사용할 수있는 대부분의 키-값 작업을 지원합니다. 특정 캐시에서 키-값 작업을 실행하려면 캐시 인스턴스를 가져 와서 해당 메서드 중 하나를 사용해야합니다.
캐시 인스턴스 가져 오기
ClientCache인터페이스는 키 - 값 API를 제공한다. 다음 방법을 사용하여의 인스턴스를 얻을 수 있습니다 ClientCache.
-
IgniteClient.cache(String): 지정된 이름의 캐시가 존재한다고 가정합니다. 이 메서드는 캐시가 실제로 존재하는지 확인하기 위해 클러스터와 통신하지 않습니다. 캐시가 없으면 후속 캐시 작업이 실패합니다.
-
IgniteClient.getOrCreateCache(String), IgniteClient.getOrCreateCache(ClientCacheConfiguration): 지정된 이름의 기존 캐시를 가져 오거나 존재하지 않는 경우 캐시를 만듭니다. 이전 작업은 기본 구성으로 캐시를 만듭니다.
-
IgniteClient.createCache(String), IgniteClient.createCache(ClientCacheConfiguration): 지정된 이름으로 캐시를 만들고 캐시가 이미있는 경우 실패합니다.
IgniteClient.cacheNames()모든 기존 캐시를 나열하는 데 사용 합니다.
스캔 쿼리 실행
ScanQuery<K, V>클래스를 사용하여 주어진 조건을 충족하는 항목 집합을 가져옵니다. 씬 클라이언트는 일반 스캔 쿼리 로 실행되는 클러스터 노드에 쿼리를 보냅니다 .
쿼리 조건은 IgniteBiPredicate<K, V>쿼리 생성자에 인수로 전달 되는 개체에 의해 지정됩니다 . 술어는 서버 측에 적용됩니다. 조건자를 제공하지 않으면 쿼리가 모든 캐시 항목을 반환합니다.
술어의 클래스는 클러스터의 서버 노드에서 사용 가능해야합니다. |
쿼리 결과는 페이지별로 클라이언트로 전송됩니다. 각 페이지에는 특정 수의 항목이 포함되어 있으며 해당 페이지의 항목이 요청 된 경우에만 클라이언트로 가져옵니다. 페이지의 항목 수를 변경하려면 ScanQuery.setPageSize(int pageSize)방법을 사용하십시오 (기본값은 1024).