프라이머
이 가이드 에서는 빠른 시작 가이드 에서운전자 와 를 사용하는 방법을 보여주기 Scala API 전에 운전자 와 해당 비동기 에 대한 배경 을 제공합니다.MongoDB
참고
드라이버 설치 방법에 대한 지침은 설치 가이드 를 참조하세요.
reactive streams
Scala 운전자 는 MongoDB Java Reactive Streams 운전자 를 기반으로 합니다. 반응 스트림 API 는 다음과 같은 구성 요소로 구성됩니다.
Observable
:게시자 의 사용자 지정 구현Observer
:구독자 의 사용자 지정 구현
Observable
은 Observer
또는 Observer
의 여러 인스턴스에서 받은 수요에 따라 게시되는 잠재적으로 무한한 수의 시퀀스 요소를 제공하는 제공자 입니다.
Observable.subscribe(Observer)
호출에 대한 응답으로 Observer
클래스의 메서드에 가능한 호출 시퀀스는 다음 프로토콜에 의해 제공됩니다.
onSubscribe onNext* (onError | onComplete)?
즉, onSubscribe()
가 항상 신호를 받고 그 뒤에 Observer
의 요청에 따라 무제한의 onNext()
신호가 발생할 수 있습니다. 그 후 Subscription
가 취소되지 않는 한 실패가 있는 경우 onError()
신호가, 더 이상 사용할 수 있는 요소가 없으면 onComplete()
신호가 옵니다.
팁
리액티브 스트림에 대해 자세히 알아보려면 리액티브 스트림 문서를 참조하세요.
Observables
Scala 드라이버 API 는 Java Sync 드라이버 API 와 네트워크 I/O가 Observable<T>
유형을 반환하도록 하는 모든 메서드를 미러링하며, 여기서 T
는 작업에 대한 응답 유형입니다.
참고
API 에서 반환된 모든 Observable
유형은 콜드 입니다. 즉, 구독할 때까지 아무 일도 일어나지 않습니다. 따라서 Observable
를 생성하는 것만으로는 네트워크 I/O가 발생하지 않습니다. Subscription.request()
메서드를 호출할 때까지는 운전자 가 작업을 실행하지 않습니다.
이 구현 의 게시자는 유니캐스트 입니다. Subscription
에 대한 각 Observable
은 단일 MongoDB 작업과 관련이 있으며,Observable
인스턴스의 는 Observer
자체적인 특정 결과 설정하다 를 수신합니다.
배압
기본값 Observer
특성은 Observable
를 구독하는 즉시 Observer
의 모든 결과를 요청 합니다. Observer
가 Observable
의 모든 결과를 처리하다 할 수 있는지 확인합니다. Observer.onSubscribe()
메서드의 사용자 지정 구현은 Subscription
를 절약하여 Observer
에 용량 이 있는 경우에만 데이터가 요청되도록 할 수 있습니다.
빠른 시작에서 사용되는 헬퍼
빠른 시작에서는 Helpers.scala 에 정의된 사용자 지정 암시적 헬퍼를 구현했습니다. 파일 을 운전자 소스 리포지토리 Github 에 저장합니다. 이러한 헬퍼는 결과를 조회 하고 인쇄합니다. 빠른 시작은 비동기 코드에 대한 인공적인 시나리오이지만, 예제는 데이터베이스 의 상태 를 보장하기 위해 다음 예제를 시작하기 전에 한 예시 의 결과를 차단 합니다. Helpers
객체 는 다음 메서드를 제공합니다.
results()
:Observable
이 완료될 때까지 차단하고 수집된 결과를 반환합니다.headResult()
:Observable
의 첫 번째 결과가 반환될 수 있을 때까지 차단됩니다.printResults()
:Observable
이 완료될 때까지 차단하고 각 결과를 출력합니다.printHeadResult()
:Observable
의 첫 번째 결과를 사용할 수 있을 때까지 차단한 다음 인쇄합니다.