Menu Docs
Página inicial do Docs
/ / /
Driver de fluxos reativos do Java
/

readPreference

Nesta página

  • Visão geral
  • Configurar a read preference no nível do sistema
  • Configurar a read preference no nível do banco de dados ou da collection
  • Configurar read concern no nível de sistema
  • Configure a preocupação de leitura no nível do banco de dados ou da coleção
  • Combine read concern, read preference e write concern
  • Informações adicionais

Para escolher de qual membro de um conjunto de réplicas ler, você pode usar o driver Java Reactive Streams para configurar as preferências de leitura. Você também pode controlar as propriedades de consistência e isolamento dos dados lidos de conjuntos de réplicas e clusters fragmentados configurando read concerns. Neste guia, você pode aprender como usar o Driver MongoDB Java Reactive Streams para configurar read preferences e read concerns.

É possível configurar a preferência de leitura e a preocupação de leitura nos seguintes níveis:

  • Para sua implementação do MongoDB

  • Para seu banco de dados de dados

  • Para sua coleção

É possível configurar a preferência de leitura no nível do sistema das seguintes maneiras:

  • Criando uma instância do MongoClientSettings , como mostrado no seguinte código:

    MongoClient mongoClient = MongoClients.create(MongoClientSettings.builder()
    .applyConnectionString(new ConnectionString("mongodb://host1,host2"))
    .readPreference(ReadPreference.secondary())
    .build());
  • Criando uma instância do ConnectionString , como mostrado no seguinte código:

    MongoClient mongoClient =
    MongoClients.create("mongodb://host1:27017,host2:27017/?readPreference=secondary");

Você pode configurar a preferência de leitura no nível do banco de dados de dados ou da collection das seguintes maneiras:

  • Em um MongoDatabase usando o método withReadPreference() , conforme mostrado no código a seguir:

    MongoDatabase database = mongoClient.getDatabase("test")
    .withReadPreference(ReadPreference.secondary());
  • Em um MongoCollection usando o método withReadPreference() , conforme mostrado no código a seguir:

    MongoCollection<Document> collection = database.getCollection("restaurants")
    .withReadPreference(ReadPreference.secondary());

MongoDatabase e MongoCollection instâncias são imutáveis. Chamar withReadPreference() em uma instância MongoDatabase ou MongoCollection existente retorna uma nova instância e não afeta a instância na qual o método é chamado.

No exemplo a seguir , a instância collectionWithReadPref tem a preferência de leitura de primaryPreferred , enquanto a preferência de leitura do collection não é afetada:

MongoCollection<Document> collectionWithReadPref = collection.withReadPreference(ReadPreference.primaryPreferred());

Você pode configurar a preocupação de leitura no nível de sistema das seguintes maneiras:

  • Criando uma instância do MongoClientSettings , como mostrado no seguinte código:

    MongoClient mongoClient = MongoClients.create(MongoClientSettings.builder()
    .applyConnectionString(new ConnectionString("mongodb://host1,host2"))
    .readConcern(ReadConcern.MAJORITY)
    .build());
  • Criando uma instância do ConnectionString , como mostrado no seguinte código:

    MongoClient mongoClient =
    MongoClients.create("mongodb://host1:27017,host2:27017/?readConcernLevel=majority");

Você pode configurar a preocupação de leitura no banco de banco de dados ou nível de coleção das seguintes maneiras:

  • Em um MongoDatabase usando o método withReadConcern() , conforme mostrado no código a seguir:

    MongoDatabase database = mongoClient.getDatabase("test")
    .withReadConcern(ReadConcern.MAJORITY);
  • Em um MongoCollection usando o método withReadConcern() , conforme mostrado no código a seguir:

    MongoCollection<Document> collection = database.getCollection("restaurants")
    .withReadConcern(ReadConcern.MAJORITY);

MongoDatabase e MongoCollection instâncias são imutáveis. Chamar withReadConcern() em uma instância MongoDatabase ou MongoCollection existente retorna uma nova instância e não afeta a instância na qual o método é chamado.

No exemplo a seguir, a instância collWithReadConcern tem um read concern AVAILABLE , enquanto a read concern do collection não é afetada:

MongoCollection<Document> collWithReadConcern =
collection.withReadConcern(ReadConcern.AVAILABLE);

Você pode construir instâncias do MongoClientSettings, MongoDatabase ou MongoCollection para incluir combinações de read concerns, read preferences e write concerns.

Por exemplo, o seguinte código define todos os três no nível da collection:

collection = database.getCollection("restaurants")
.withReadPreference(ReadPreference.primary())
.withReadConcern(ReadConcern.MAJORITY)
.withWriteConcern(WriteConcern.MAJORITY);

Para saber mais sobre a preferência de leitura, consulte oguia de read preference no manual do MongoDB Server . Para saber mais sobre preocupação de leitura, consulte o guia Read Concern no manual do MongoDB Server .

Voltar

Acessar dados de um cursor