*Por Gabriel Prestes

Primeiramente, para contextuar a todos, daremos de forma breve a explicação de o que é o Meteor e o Oplog, e o que significa o procedimento de configurar o Meteor para fazer ‘tailing’ diretamente no Oplog. Após o entendimento, verão que a configuração é simples, pois o framework é preparado por padrão para fazer este uso.

Antes de citarmos o Meteor e a camada de desenvolvimento precisamos saber um pouco sobre a camada de dados, ou seja, o MongoDB. MongoDB é um banco NoSQL, ou seja, não relacional,  baseado em documentos e é muito utilizado em aplicações que necessitam de interação com informações de chave e valor.

O Oplog do MongoDB é um log onde são armazenadas operações, são essas operações que tornam possíveis a configuração de réplicas do MongoDB.

Mais informações sobre replicaset :

https://docs.mongodb.com/manual/replication/

Quanto ao Meteor, ou MeteorJS é um framework web JavaScript escrito em NodeJS. Este normalmente roda atrás de um WebServer, seja ele Nginx, Apache, ou outros. Entretanto quando implantado na infraestrutura de produção possuímos uma integração convencional com a camada de dados do MongoDB. Estejas utilizando apenas uma instância, ou um conjunto de réplicas e tenha configurado corretamente a variável de ambiente MONGO_URL e MONGO_OPLOG_URL o tailing no Oplog que o Meteor possui na verdade nada mais é que utilizar o log de operações do MongoDB para aprimorar a performance da aplicação.

Mas o que eu ganho com isso? Bem, na aplicação que utilizamos, após o tailing no Oplog passamos a responder em até 50% mais rápido do que o método tradicional de conexão, isto observado de nossa camada de monitoramento do tempo médio de espera nas consultas da aplicação.

O processo de configuração para usar o tailing é fácil, envolve a criação de um usuário que conectará a uma base, mas poderá apenas ler a database ‘oplog’. Observe essa sentença citada anteriormente com atenção, pois permitir mais do que leitura a este usuário cria uma vulnerabilidade no seu ambiente. Feita a criação do usuário deves setar a variável MONGO_OPLOG_URL.

Como identifico que minha configuração está realizando tailing no OpLog? Bem, olhe o log da replicaset primária, lá você identifica a conexão de sua aplicação consumindo a database do oplog e não mais só uma conexão convencional da aplicação.

Outro cuidado a tomar é o tamanho do oplog na configuração de suas ‘replicasets’, o padrão normalmente é suficiente, entretanto avalie com cautela, principalmente porque um size pequeno fará suas réplicas perderem sincronia em função de um problema de rede com facilidade.   

 

Referências:

 

https://projectricochet.com/blog/magic-meteor-oplog-tailing

https://blog.mlab.com/2014/07/tutorial-scaling-meteor-with-mongodb-oplog-tailing/

http://www.devmedia.com.br/meteor-js-construindo-aplicacoes-web-com-node-js-e-mongodb/32953

 

*Gabriel Prestes

autor beyonde

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

CAPTCHA
Change the CAPTCHA codeSpeak the CAPTCHA code