이 가이드 에서는 빠른 시작 가이드 에서운전자 와 를 사용하는 방법을 보여주기 Scala API 전에 운전자 와 해당 비동기 에 대한 배경 을 제공합니다.MongoDB
참고
드라이버 설치 방법에 대한 지침은 설치 가이드 를 참조하세요.
reactive streams
Scala 운전자 는 MongoDB Java Reactive Streams 운전자 를 기반으로 합니다. 반응 스트림 API 는 다음과 같은 구성 요소로 구성됩니다.
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 에 용량 이 있는 경우에만 데이터가 요청되도록 할 수 있습니다.
빠른 시작에서 사용되는 헬퍼
빠른 시작에서는 운전자 소스 Github 리포지토리의 Helpers.scala 파일에 정의된 사용자 지정 암시적 헬퍼를 구현했습니다. 이러한 헬퍼는 결과를 조회 하고 인쇄합니다. 빠른 시작은 비동기 코드에 대한 인공적인 시나리오이지만, 예제는 데이터베이스 의 상태 보장하기 위해 다음 예제를 시작하기 전에 한 예시 의 결과를 차단 . Helpers 객체 다음 메서드를 제공합니다.
results():Observable이 완료될 때까지 차단하고 수집된 결과를 반환합니다.headResult():Observable의 첫 번째 결과가 반환될 수 있을 때까지 차단됩니다.printResults():Observable이 완료될 때까지 차단하고 각 결과를 출력합니다.printHeadResult():Observable의 첫 번째 결과를 사용할 수 있을 때까지 차단한 다음 인쇄합니다.