2017-12-11 25 views
0

두 개의 서로 다른 데이터 센터에있는 elasticsearch 클러스터가 "거의 실시간으로"동기화되어야하므로 두 클러스터에 명령 (NEST를 통해)을 보내려합니다.여러 elasticsearch 클러스터에서 동일한 명령을 실행하는 NEST의 지원이 있습니까?

참고 : 복원을 수행하기 전에 색인을 닫아야하므로 스냅 샷/복원을 사용하고 싶지 않습니다.

여러 클러스터에서 동일한 명령 (주로 "쓰기"명령)을 실행하는 NEST의 기본 지원이 있습니까?

그렇지 않은 경우이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

나는 주위에 여러 ConnectionPool을 정의 보았다하지만 난 ElasticClient에

참고 여러 연결 풀을 전달하는 방법을 잘 모르겠어요 : ATM 우리는 여전히 NEST 2.5.5을 사용하지만 우리는 NEST 5.x의 이동 계획 곧

도움을 주셔서 감사합니다.

답변

1

여러 클러스터에서 동일한 명령 (주로 "쓰기"명령)을 실행하는 기본 지원이 있습니까?

가 복수의 클러스터에 대해 원자 적 요청을 실행하기위한 기본 지원이다 없지만, IElasticClient 두 인스턴스를 갖는 여러 개의 클러스터에 대한 동일한 요청을 실행하기 위해 하나 개의 클러스터와 ConnectionSettings을 사용하여 다른 가리 ConnectionSettings 사용 가능한 하나의 다른 클러스터를 가리 킵니다. 그런 다음 두 클라이언트 인스턴스 모두에 동일한 요청을 전달하십시오.

두 클라이언트에 대한 요청을 한 곳에서 처리해야하는 형식으로 두 클라이언트 모두에 대해 작업을 캡슐화 할 수 있습니다.

+0

안녕하십니까. 도움을 주셔서 감사합니다. 우리가해야 할 일을 이해합니다. 난 그냥 "다음, 두 클라이언트 인스턴스에 동일한 요청을 통과 실행에 관한 질문이 있습니다.". "ElasticClient 인스턴스마다 BulkAsync() API를 호출 할 때"중첩 요청 "(예 : BulkDescriptor)을 한 번 생성하고 다시 사용할 수 있다는 의미입니까? 또는 각 호출에 대해 BulkDescriptor를 만들어야합니까? – Olivier

+0

예, 대량 요청을 하나 생성하여 두 클라이언트 호출 모두에 다시 사용할 수 있습니다. –

+0

대단히 감사합니다! – Olivier