Docs Menu
Docs Home
/ / /
Scala
/

프라이머

이 페이지의 내용

  • reactive streams
  • Observables
  • 배압
  • 빠른 시작에서 사용되는 헬퍼

이 가이드 에서는 빠른 시작 가이드 에서운전자 와 를 사용하는 방법을 보여주기 Scala API 전에 운전자 와 해당 비동기 에 대한 배경 을 제공합니다.MongoDB

참고

드라이버 설치 방법에 대한 지침은 설치 가이드 를 참조하세요.

Scala 운전자 는 MongoDB Java Reactive Streams 운전자 를 기반으로 합니다. 반응 스트림 API 는 다음과 같은 구성 요소로 구성됩니다.

  1. Observable:게시자 의 사용자 지정 구현

  2. Observer:구독자 의 사용자 지정 구현

  3. 서브스크립션

ObservableObserver 또는 Observer 의 여러 인스턴스에서 받은 수요에 따라 게시되는 잠재적으로 무한한 수의 시퀀스 요소를 제공하는 제공자 입니다.

Observable.subscribe(Observer) 호출에 대한 응답으로 Observer 클래스의 메서드에 가능한 호출 시퀀스는 다음 프로토콜에 의해 제공됩니다.

onSubscribe onNext* (onError | onComplete)?

즉, onSubscribe() 가 항상 신호를 받고 그 뒤에 Observer 의 요청에 따라 무제한의 onNext() 신호가 발생할 수 있습니다. 그 후 Subscription 가 취소되지 않는 한 실패가 있는 경우 onError() 신호가, 더 이상 사용할 수 있는 요소가 없으면 onComplete() 신호가 옵니다.

리액티브 스트림에 대해 자세히 알아보려면 리액티브 스트림 문서를 참조하세요.

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 의 모든 결과를 요청 합니다. ObserverObservable 의 모든 결과를 처리하다 할 수 있는지 확인합니다. Observer.onSubscribe() 메서드의 사용자 지정 구현은 Subscription 를 절약하여 Observer 에 용량 이 있는 경우에만 데이터가 요청되도록 할 수 있습니다.

빠른 시작에서는 Helpers.scala 에 정의된 사용자 지정 암시적 헬퍼를 구현했습니다. 파일 을 운전자 소스 리포지토리 Github 에 저장합니다. 이러한 헬퍼는 결과를 조회 하고 인쇄합니다. 빠른 시작은 비동기 코드에 대한 인공적인 시나리오이지만, 예제는 데이터베이스 의 상태 를 보장하기 위해 다음 예제를 시작하기 전에 한 예시 의 결과를 차단 합니다. Helpers 객체 는 다음 메서드를 제공합니다.

  • results(): Observable 이 완료될 때까지 차단하고 수집된 결과를 반환합니다.

  • headResult(): Observable 의 첫 번째 결과가 반환될 수 있을 때까지 차단됩니다.

  • printResults(): Observable 이 완료될 때까지 차단하고 각 결과를 출력합니다.

  • printHeadResult(): Observable 의 첫 번째 결과를 사용할 수 있을 때까지 차단한 다음 인쇄합니다.

돌아가기

시작하기