commit
Nesta página
Descrição
Finaliza a sincronização entre o cluster de origem e o cluster de destino e interrompe a sincronização contínua entre clusters.
Para mais informações, consulte Finalizar Processo de Transferência.
Requisitos
Antes de usar o endpoint commit
:
Interrompa seu aplicação para evitar novas gravações no cluster de origem. Durante a confirmação, você ainda pode ler do cluster de origem.
Aviso
Se você gravar no cluster de origem durante a confirmação, poderá sofrer perda de dados.
Use o endpoint de progresso para confirmar os seguintes valores:
lagTimeSeconds
está próximo de0
(Recomendado, mas não obrigatório)Observação
lagTimeSeconds
lagTimeSeconds
indica o tempo entre o último evento aplicado e a hora do último evento atual. Quando você envia uma solicitação decommit
,mongosync
entra no estadoCOMMITTING
pela quantidade de segundos relatada porlagTimeSeconds
e, em seguida, faz a transição para o estadoCOMMITTED
.Quando
lagTimeSeconds
é0
, os clusters de origem e destino estão em um estado consistente.state: "RUNNING"
canCommit: true
Observação
Ao configurar várias instâncias mongosync
para sincronizar entre clusters fragmentados, você deve enviar comandos de ponto de conexão da API idênticos para cada instância mongosync
.
Para obter mais informações, consulte Commit sincronização de várias instâncias do mongosync
.
Solicitar
POST /api/v1/commit
Parâmetros do corpo da solicitação
Este endpoint não usa parâmetros do corpo da solicitação HTTP. No entanto, você deve especificar a opção --data
com um objeto vazio { }
.
Resposta
Campo | Tipo | Descrição |
---|---|---|
| booleano | Quando a solicitação é bem-sucedida, esse valor é |
| string | Se ocorreu um erro, indica o nome do erro. Este campo é omitido da resposta quando |
| string | Descrição detalhada do erro que ocorreu. Este campo é omitido da resposta quando |
Exemplo
O exemplo a seguir confirma a operação de sincronização no cluster de destino.
Confirme se a sincronização está pronta
Antes de enviar uma solicitação para o endpoint commit
, use o endpoint de progresso para confirmar se a sincronização está pronta para ser confirmada.
Solicitar
curl localhost:27182/api/v1/progress -XGET
Resposta
{ "progress": { "state":"RUNNING", "canCommit":true, "canWrite":false, "info":"change event application", "lagTimeSeconds":0, "collectionCopy": { "estimatedTotalBytes":694, "estimatedCopiedBytes":694 }, "directionMapping": { "Source":"cluster0: localhost:27017", "Destination":"cluster1: localhost:27018" }, "verification": { "source": { "estimatedDocumentCount": 42, "hashedDocumentCount": 42, "lagTimeSeconds": 2, "totalCollectionCount": 42, "scannedCollectionCount": 10, "phase": "stream hashing" }, "destination": { "estimatedDocumentCount": 42, "hashedDocumentCount": 42, "lagTimeSeconds": 2, "totalCollectionCount": 42, "scannedCollectionCount": 10, "phase": "stream hashing" } } }, "success": true }
O endpoint progress
retornou "canCommit":true
, o que significa que a solicitação commit
pode ser executada com sucesso.
Enviar a solicitação de confirmação
O seguinte comando envia uma solicitação para o endpoint commit
:
Solicitar
curl localhost:27182/api/v1/commit -XPOST --data '{ }'
Resposta
{"success":true}
Comportamento
Estado
Se a solicitação commit
for bem-sucedida, mongosync
entrará no estado COMMITTED
. Quando mongosync
entra no estado COMMITTED
, a sincronização contínua entre os clusters é interrompida.
Verificação de dados
Antes de transferir a carga do seu aplicativo do cluster de origem para o destino, verifique seus dados para garantir que a sincronização foi bem-sucedida.
Observação
Se mongosync
parar durante o commit, antes que o endpoint /progress canWrite: true
informe, você deverá reiniciar toda a migração para garantir que ela seja verificada.
Para obter mais informações, consulte Verificar a fonte de dados.
Alterações nas características da coleção
commit
restaura as características da coleção que mongosync
altera temporariamente durante a sincronização.
A tabela a seguir ilustra o impacto do commit
nas características da collection que o mongosync
altera durante o processo de sincronização.
Característica da collection | impacto de commit |
---|---|
Unique Indexes |
|
TTL Indexes |
|
Hidden Indexes |
|
Bloqueio de gravação | Se você habilitar o bloqueio de gravação,
Consulte também: Bloqueio de gravação |
Capped collections |
|
Proteção de endpoint
mongosync
não protege o endpoint commit
. No entanto, por padrão, a API é vinculada apenas ao host local e não aceita chamadas de outras fontes. Além disso, a chamada commit
não expõe credenciais de conexão ou dados de usuário.