Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Azure Cosmos DB é um serviço de banco de dados NoSQL totalmente gerenciado fornecido pela Microsoft. Ele permite que você crie aplicativos globalmente distribuídos e altamente escalonáveis com facilidade. Este guia de instruções explica o processo de criação de um aplicativo Java que usa o banco de dados do Azure Cosmos DB para NoSQL e implementa o Processador de Feed de Alterações para processamento de dados em tempo real. O aplicativo Java se comunica com o Azure Cosmos DB para NoSQL usando o SDK do Java do Azure Cosmos DB v4.
Importante
Este tutorial destina-se apenas ao SDK do Java v4 do Azure Cosmos DB. Veja as notas de versão do SDK do Java v4 do Azure Cosmos DB, o repositório Maven, o processador de feed de alterações no Azure Cosmos DB e o guia de solução de problemas do SDK do Java v4 do Azure Cosmos DB para obter mais informações. Se você estiver usando uma versão mais antiga do que a v4, confira o guia Migrar para o SDK do Java v4 do Azure Cosmos DB para obter ajuda na atualização da versão 4.
Pré-requisitos
Conta do Azure Cosmos DB: você pode criá-la no portal do Azure ou também pode usar o Emulador do Azure Cosmos DB .
Ambiente de Desenvolvimento java: verifique se você tem o JDK (Java Development Kit) instalado em seu computador com pelo menos 8 versões.
SDK do Java V4 do Azure Cosmos DB: fornece os recursos necessários para interagir com o Azure Cosmos DB.
Contexto
O feed de alterações do Azure Cosmos DB fornece uma interface controlada por eventos para disparar ações em resposta à inserção de documentos que tem muitos usos.
O trabalho de gerenciamento de eventos do feed de alterações é amplamente cuidado pela biblioteca do Processador de feed de alterações integrada ao SDK. Essa biblioteca é poderosa o suficiente para distribuir eventos de feed de alterações entre vários trabalhadores, se desejar. Tudo o que você precisa fazer é fornecer à biblioteca de log de alterações um callback.
Este simples exemplo de aplicativo Java demonstra o processamento de dados em tempo real com o Azure Cosmos DB e o Processador de Alterações de Feed. O aplicativo insere documentos de exemplo em um "contêiner de feed" para simular um fluxo de dados. O Processador do Feed de Alterações, vinculado ao contêiner de feed, processa alterações de entrada e registra o conteúdo do documento. O processador gerencia automaticamente as concessões para processamento paralelo.
Código-fonte
Você pode clonar o repositório de exemplo do SDK e encontrar este exemplo em SampleChangeFeedProcessor.java:
git clone https://github.com/Azure-Samples/azure-cosmos-java-sql-api-samples.git
cd azure-cosmos-java-sql-api-sample/src/main/java/com/azure/cosmos/examples/changefeed/
Walkthrough
Configure o
ChangeFeedProcessorOptionsem um aplicativo Java usando o Azure Cosmos DB e o Azure Cosmos DB Java SDK V4.ChangeFeedProcessorOptionsfornece configurações essenciais para controlar o comportamento do Processador de Feed de Alterações durante o processamento de dados.options = new ChangeFeedProcessorOptions(); options.setStartFromBeginning(false); options.setLeasePrefix("myChangeFeedDeploymentUnit"); options.setFeedPollDelay(Duration.ofSeconds(5)); options.setFeedPollThroughputControlConfig(throughputControlGroupConfig);Inicialize o ChangeFeedProcessor com configurações relevantes, incluindo o nome do host, o contêiner de feed, o contêiner de concessão e a lógica de manipulação de dados. O método start() inicia o processamento de dados, permitindo o processamento simultâneo e em tempo real de alterações de dados de entrada do contêiner do feed.
logger.info("Start Change Feed Processor on worker (handles changes asynchronously)"); ChangeFeedProcessor changeFeedProcessorInstance = new ChangeFeedProcessorBuilder() .hostName("SampleHost_1") .feedContainer(feedContainer) .leaseContainer(leaseContainer) .handleChanges(handleChanges()) .options(options) .buildChangeFeedProcessor(); changeFeedProcessorInstance.start() .subscribeOn(Schedulers.boundedElastic()) .subscribe();Especifique que o delegado manipula as alterações de dados de entrada usando o
handleChanges()método. O método processa os documentos JsonNode recebidos do Feed de Alterações. Como desenvolvedor, você tem duas opções para lidar com o documento JsonNode fornecido pelo Feed de Alterações. Uma opção é operar no documento na forma de um JsonNode. Isso é ótimo especialmente se você não tiver um único modelo de dados uniforme para todos os documentos. A segunda opção : transformar o JsonNode em um POJO com a mesma estrutura que o JsonNode. Em seguida, você pode operar no POJO.private static Consumer<List<JsonNode>> handleChanges() { return (List<JsonNode> docs) -> { logger.info("Start handleChanges()"); for (JsonNode document : docs) { try { //Change Feed hands the document to you in the form of a JsonNode //As a developer you have two options for handling the JsonNode document provided to you by Change Feed //One option is to operate on the document in the form of a JsonNode, as shown below. This is great //especially if you do not have a single uniform data model for all documents. logger.info("Document received: " + OBJECT_MAPPER.writerWithDefaultPrettyPrinter() .writeValueAsString(document)); //You can also transform the JsonNode to a POJO having the same structure as the JsonNode, //as shown below. Then you can operate on the POJO. CustomPOJO2 pojo_doc = OBJECT_MAPPER.treeToValue(document, CustomPOJO2.class); logger.info("id: " + pojo_doc.getId()); } catch (JsonProcessingException e) { e.printStackTrace(); } } isWorkCompleted = true; logger.info("End handleChanges()"); }; }Crie e execute o aplicativo Java. O aplicativo inicia o Processador de Alterações do Feed, insere documentos de exemplo no contêiner de feed e processa as alterações de entrada.
Conclusion
Neste guia, você aprendeu a criar um aplicativo Java usando o SDK do Java V4 do Azure Cosmos DB que usa o banco de dados do Azure Cosmos DB para NoSQL e usa o Processador de Feed de Alterações para processamento de dados em tempo real. Você pode estender esse aplicativo para lidar com casos de uso mais complexos e criar aplicativos robustos, escalonáveis e distribuídos globalmente usando o Azure Cosmos DB.
Recursos adicionais
Próximas etapas
Agora você pode prosseguir para saber mais sobre o avaliador de feed de alterações nos seguintes artigos: