{"id":4386,"date":"2017-12-22T08:24:26","date_gmt":"2017-12-22T16:24:26","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=4386"},"modified":"2025-06-13T20:46:34","modified_gmt":"2025-06-14T03:46:34","slug":"deep-dive-cross-data-center-replication-xdcr","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/deep-dive-cross-data-center-replication-xdcr\/","title":{"rendered":"Mergulho profundo na replica\u00e7\u00e3o entre data centers (XDCR)"},"content":{"rendered":"<p><span style=\"font-weight: 400\">Vimos em um <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/replicate-nosql-data-between-datacenters-with-couchbase-xdcr\/\">post anterior<\/a> \u00c9 f\u00e1cil configurar uma replica\u00e7\u00e3o entre data centers (Cross Data Center Replication)?<a href=\"https:\/\/www.couchbase.com\/blog\/pt\/products\/xdcr\/\">XDCR<\/a>), hoje vamos nos aprofundar um pouco mais para entender o que torna o XDCR um recurso t\u00e3o bom.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Em primeiro lugar, o XDCR permite que voc\u00ea replique dados entre clusters de tamanhos diferentes, o que o torna uma excelente op\u00e7\u00e3o para<\/span><a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/current\/ha-dr\/ha-dr-intro.html\"> <span style=\"font-weight: 400\">desastre e recupera\u00e7\u00e3o<\/span><\/a><span style=\"font-weight: 400\"> plano. Al\u00e9m disso, \u00e9 uma maneira simples, mas poderosa, de aproximar os dados dos seus usu\u00e1rios.<\/span><\/p>\n<p><span style=\"font-weight: 400\">A replica\u00e7\u00e3o \u00e9 feita de mem\u00f3ria para mem\u00f3ria. Assim, todas as grava\u00e7\u00f5es s\u00e3o salvas primeiro na mem\u00f3ria e, em seguida, colocadas em uma fila de replica\u00e7\u00e3o, que as envia pela rede por meio de v\u00e1rios threads. Portanto, todo o desempenho \u00e9 limitado apenas pela velocidade de sua rede.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Ele tamb\u00e9m \u00e9 sens\u00edvel \u00e0 topologia e, portanto, sempre que voc\u00ea adicionar ou remover n\u00f3s do cluster de origem, nenhuma a\u00e7\u00e3o precisar\u00e1 ser executada no cluster de destino. Ele restabelecer\u00e1 a conex\u00e3o e cuidar\u00e1 de tudo automaticamente.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Al\u00e9m disso, ele tamb\u00e9m oferece reconhecimento de zona de rack, o que ajuda a proteger contra eventos de falha de v\u00e1rios n\u00f3s, separando os dados ativos e suas r\u00e9plicas em \"grupos\" que podem ser mapeados de forma que ocupem racks, zonas ou hosts de VM diferentes.<\/span><\/p>\n<p><span style=\"font-weight: 400\">As replica\u00e7\u00f5es s\u00e3o feitas no n\u00edvel do bucket (entre buckets de dois ou mais clusters) e podem ser configuradas da seguinte forma.<\/span><\/p>\n<ul>\n<li><b>Unidirecional:<\/b><span style=\"font-weight: 400\"> Somente os dados gravados em um dos clusters s\u00e3o replicados; ele \u00e9 usado quando voc\u00ea deseja configurar um cluster em espera, por exemplo.<\/span><\/li>\n<li><b>Bidirecional:<\/b><span style=\"font-weight: 400\"> (tamb\u00e9m conhecida como implementa\u00e7\u00e3o ativa para ativa), em que ambos os clusters podem gravar dados e todas as altera\u00e7\u00f5es s\u00e3o sincronizadas entre eles. Em resumo, um mapeamento bidirecional \u00e9 apenas duas replica\u00e7\u00f5es unidirecionais apontando uma para a outra.<\/span><\/li>\n<li><b>H\u00edbrido:<\/b><span style=\"font-weight: 400\"> Uma combina\u00e7\u00e3o das topologias Bidirecional e Unidirecional.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">Gra\u00e7as ao DCP, voc\u00ea tamb\u00e9m pode pausar a replica\u00e7\u00e3o a qualquer momento e, depois de retom\u00e1-la, a recupera\u00e7\u00e3o come\u00e7a no ponto de verifica\u00e7\u00e3o mais recente.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4388\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/12\/Screen-Shot-2017-12-18-at-11.51.21-AM-300x121.png\" alt=\"\" width=\"899\" height=\"363\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/12\/Screen-Shot-2017-12-18-at-11.51.21-AM-300x121.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/12\/Screen-Shot-2017-12-18-at-11.51.21-AM-1024x413.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/12\/Screen-Shot-2017-12-18-at-11.51.21-AM-768x310.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/12\/Screen-Shot-2017-12-18-at-11.51.21-AM-1536x619.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/12\/Screen-Shot-2017-12-18-at-11.51.21-AM-2048x825.png 2048w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/12\/Screen-Shot-2017-12-18-at-11.51.21-AM-20x8.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/12\/Screen-Shot-2017-12-18-at-11.51.21-AM-1320x532.png 1320w\" sizes=\"auto, (max-width: 899px) 100vw, 899px\" \/><\/p>\n<h3><span style=\"font-weight: 400\">Protocolo de altera\u00e7\u00e3o de banco de dados<\/span><\/h3>\n<p><span style=\"font-weight: 400\">O Database Change Protocol (DCP) \u00e9 um protocolo de streaming de alto desempenho que usamos internamente para comunicar o estado dos dados usando um changelog ordenado. Ele \u00e9 robusto e resiliente diante de erros transit\u00f3rios, por exemplo, se a comunica\u00e7\u00e3o for interrompida, o DCP \u00e9 capaz de retomar a partir do ponto exato da \u00faltima atualiza\u00e7\u00e3o bem-sucedida assim que a conectividade for restabelecida.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Ele tamb\u00e9m \u00e9 otimizado para enviar somente os dados necess\u00e1rios. Por exemplo, se houver v\u00e1rias altera\u00e7\u00f5es em um documento, apenas a vers\u00e3o mais recente ser\u00e1 marcada para ser replicada.<\/span><\/p>\n<p><span style=\"font-weight: 400\">O XDCR depende do DCP para propagar as altera\u00e7\u00f5es. Dessa forma, ele garante que o mesmo documento ser\u00e1 replicado entre todos os clusters, independentemente de problemas de conectividade.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">Vamos destacar tamb\u00e9m outros dois recursos interessantes do XDCR: resolu\u00e7\u00e3o de conflitos e filtragem de dados:<\/span><\/p>\n<h3><b>Resolu\u00e7\u00e3o de conflitos<\/b><\/h3>\n<p><span style=\"font-weight: 400\">Um conflito ocorre quando o mesmo documento \u00e9 modificado em dois locais diferentes antes de ser sincronizado entre os locais. Para manter a consist\u00eancia, uma vers\u00e3o deve ser escolhida como a vers\u00e3o \"correta\". A resolu\u00e7\u00e3o de conflitos fornece um m\u00e9todo para selecionar de forma consistente e determin\u00edstica qual vers\u00e3o do documento deve ser usada.<\/span><\/p>\n<p><span style=\"font-weight: 400\">A resolu\u00e7\u00e3o de conflitos do Couchbase \u00e9 definida durante a cria\u00e7\u00e3o do bucket e n\u00e3o pode ser alterada posteriormente. Atualmente, h\u00e1 suporte para dois tipos de resolu\u00e7\u00e3o de conflitos: Registro de data e hora e N\u00famero de sequ\u00eancia.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4387\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/12\/Screen-Shot-2017-12-18-at-5.39.52-PM-832x1024.png\" alt=\"\" width=\"551\" height=\"678\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/12\/Screen-Shot-2017-12-18-at-5.39.52-PM-832x1024.png 832w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/12\/Screen-Shot-2017-12-18-at-5.39.52-PM-244x300.png 244w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/12\/Screen-Shot-2017-12-18-at-5.39.52-PM-768x945.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/12\/Screen-Shot-2017-12-18-at-5.39.52-PM-300x369.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/12\/Screen-Shot-2017-12-18-at-5.39.52-PM-16x20.png 16w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/12\/Screen-Shot-2017-12-18-at-5.39.52-PM.png 1055w\" sizes=\"auto, (max-width: 551px) 100vw, 551px\" \/><\/p>\n<p>&nbsp;<\/p>\n<h4><b>N\u00famero de sequ\u00eancia<\/b><\/h4>\n<p><span style=\"font-weight: 400\">Ap\u00f3s cada muta\u00e7\u00e3o em um documento, aumentamos um contador chamado <\/span><b>n\u00famero de revis\u00e3o<\/b><span style=\"font-weight: 400\">portanto, sempre que houver um conflito entre dois documentos, o que tiver o n\u00famero de revis\u00e3o mais alto ter\u00e1 preced\u00eancia em ambos os clusters.<\/span><\/p>\n<h4><b>Carimbo de data\/hora<\/b><\/h4>\n<p><span style=\"font-weight: 400\">O TCR (Timestamp-based Conflict Resolution) \u00e9 o mecanismo de resolu\u00e7\u00e3o de conflitos mais comumente suportado em bancos de dados. O TCR resolve conflitos selecionando o documento com o carimbo de data\/hora mais recente. Para que isso possa ser feito com efic\u00e1cia, \u00e9 essencial que os registros de data e hora criados por cada servidor estejam bem alinhados.<\/span><\/p>\n<p><span style=\"font-weight: 400\">No entanto, o TCR pode aumentar a perda de dados, pois ignora quantas vezes um documento foi atualizado e, se um dos rel\u00f3gios do servidor estiver r\u00e1pido\/lento, voc\u00ea acabar\u00e1 com uma resolu\u00e7\u00e3o de conflitos confusa. \u00c9 por isso que a op\u00e7\u00e3o padr\u00e3o no Couchbase \u00e9 \"N\u00famero de sequ\u00eancia\".<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3><b>Filtragem de dados<\/b><\/h3>\n<p><span style=\"font-weight: 400\">Por padr\u00e3o, todos os documentos em um bucket de destino ser\u00e3o replicados, mas desde o Couchbase 6.5 voc\u00ea pode usar <a href=\"https:\/\/docs.couchbase.com\/server\/6.0\/learn\/clusters-and-availability\/xdcr-filtering.html\">Express\u00f5es de filtragem<\/a> para filtrar os dados que voc\u00ea deseja replicar.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-7436\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/12\/Screen-Shot-2019-08-07-at-3.28.31-PM.png\" alt=\"\" width=\"528\" height=\"786\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/12\/Screen-Shot-2019-08-07-at-3.28.31-PM.png 528w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/12\/Screen-Shot-2019-08-07-at-3.28.31-PM-202x300.png 202w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/12\/Screen-Shot-2019-08-07-at-3.28.31-PM-300x447.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/12\/Screen-Shot-2019-08-07-at-3.28.31-PM-13x20.png 13w\" sizes=\"auto, (max-width: 528px) 100vw, 528px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\"> A filtragem avan\u00e7ada oferece suporte a v\u00e1rias constru\u00e7\u00f5es de linguagem para criar filtros, como regex, operadores aritm\u00e9ticos, l\u00f3gicos e relacionais, palavras-chave, express\u00f5es, fun\u00e7\u00f5es num\u00e9ricas, fun\u00e7\u00f5es de data, lookahead negativo etc. Voc\u00ea pode aplicar esses recursos nas chaves, valores, metadados e CAS do documento. Assim como o predicado das consultas N1QL, as express\u00f5es podem ser constru\u00eddas usando as constru\u00e7\u00f5es de linguagem compat\u00edveis.<\/span><\/p>\n<p>No <strong>Filtros de exclus\u00e3o<\/strong> sess\u00e3o, voc\u00ea tamb\u00e9m pode optar por n\u00e3o replicar opera\u00e7\u00f5es de exclus\u00e3o, expira\u00e7\u00f5es de documentos <span style=\"font-weight: 400\">ou remover <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/how-to-manage-ttl-with-couchbase-n1ql\/\">TTL<\/a> e armazen\u00e1-lo para fins de arquivamento.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Os filtros tamb\u00e9m podem ser editados em tempo real e a replica\u00e7\u00e3o continuar\u00e1 sem nenhuma pausa\/retomada.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/08\/adv4-1-300x207.png\" width=\"436\" height=\"301\" \/><\/p>\n<p><span style=\"font-weight: 400\">O XDCR, por padr\u00e3o, n\u00e3o descarregar\u00e1 nenhum compartimento quando os filtros forem modificados. Essa etapa deve ser executada manualmente pelo administrador, se necess\u00e1rio.<\/span><\/p>\n<h3><b>Conclus\u00e3o<\/b><\/h3>\n<p><span style=\"font-weight: 400\">Se voc\u00ea precisa de um plano de desastre e recupera\u00e7\u00e3o ou apenas gostaria de aproximar seus dados do usu\u00e1rio, o Cross Data Center Replication (XDCR) \u00e9 um recurso que voc\u00ea deve considerar usar. Ele \u00e9 simples de configurar, quase n\u00e3o requer manuten\u00e7\u00e3o e foi amplamente testado em v\u00e1rios casos de uso de alta carga, como Amadeus, eBay e Viber.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Para obter mais informa\u00e7\u00f5es sobre o XDCR com o Couchbase, consulte o <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/pt\/developers\/\"><span style=\"font-weight: 400\">Portal do desenvolvedor do Couchbase<\/span><\/a><span style=\"font-weight: 400\"> ou me envie um tweet para <a href=\"https:\/\/twitter.com\/deniswsrosa\">@deniswsrosa<\/a><\/span><\/p>\n<p>&nbsp;<\/p>\n<p><strong>Atualizado em 08\/08\/19 - <\/strong>Adi\u00e7\u00e3o de novos recursos XDCR para o Couchbase 6.5<\/p>\n<p>&nbsp;<\/p>","protected":false},"excerpt":{"rendered":"<p>We saw in a previous post how easy is to set up a Cross Data Center Replication (XDCR), today let\u2019s go a little bit deeper to understand what makes XDCR such a great feature. First of all, XDCR allows you [&hellip;]<\/p>","protected":false},"author":8754,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1821,9415],"tags":[],"ppma_author":[9059],"class_list":["post-4386","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-architecture","category-xdcr"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.2 (Yoast SEO v26.2) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Deep Dive on Cross Data Center Replication - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"What makes XDCR such a great feature. If you need a Disaster &amp; Recovery plan or like to bring data closer to user, XDCR is a feature you must consider.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/pt\/deep-dive-cross-data-center-replication-xdcr\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Deep Dive on Cross Data Center Replication (XDCR)\" \/>\n<meta property=\"og:description\" content=\"What makes XDCR such a great feature. If you need a Disaster &amp; Recovery plan or like to bring data closer to user, XDCR is a feature you must consider.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/deep-dive-cross-data-center-replication-xdcr\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-12-22T16:24:26+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T03:46:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/12\/Screen-Shot-2017-12-18-at-11.51.21-AM.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2268\" \/>\n\t<meta property=\"og:image:height\" content=\"914\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Denis Rosa, Developer Advocate, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@deniswsrosa\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Denis Rosa, Developer Advocate, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/deep-dive-cross-data-center-replication-xdcr\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/deep-dive-cross-data-center-replication-xdcr\/\"},\"author\":{\"name\":\"Denis Rosa, Developer Advocate, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/fe3c5273e805e72a5294611a48f62257\"},\"headline\":\"Deep Dive on Cross Data Center Replication (XDCR)\",\"datePublished\":\"2017-12-22T16:24:26+00:00\",\"dateModified\":\"2025-06-14T03:46:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/deep-dive-cross-data-center-replication-xdcr\/\"},\"wordCount\":898,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/deep-dive-cross-data-center-replication-xdcr\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"Couchbase Architecture\",\"Cross Data Center Replication (XDCR)\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/deep-dive-cross-data-center-replication-xdcr\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/deep-dive-cross-data-center-replication-xdcr\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/deep-dive-cross-data-center-replication-xdcr\/\",\"name\":\"Deep Dive on Cross Data Center Replication - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/deep-dive-cross-data-center-replication-xdcr\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/deep-dive-cross-data-center-replication-xdcr\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2017-12-22T16:24:26+00:00\",\"dateModified\":\"2025-06-14T03:46:34+00:00\",\"description\":\"What makes XDCR such a great feature. If you need a Disaster & Recovery plan or like to bring data closer to user, XDCR is a feature you must consider.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/deep-dive-cross-data-center-replication-xdcr\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/deep-dive-cross-data-center-replication-xdcr\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/deep-dive-cross-data-center-replication-xdcr\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/deep-dive-cross-data-center-replication-xdcr\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Deep Dive on Cross Data Center Replication (XDCR)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/fe3c5273e805e72a5294611a48f62257\",\"name\":\"Denis Rosa, Developer Advocate, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/be0716f6199cfb09417c92cf7a8fa8d6\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f8d1f5c13115122cab89d0f229b904480bfe20d3dfbb093fe9734cda5235d419?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f8d1f5c13115122cab89d0f229b904480bfe20d3dfbb093fe9734cda5235d419?s=96&d=mm&r=g\",\"caption\":\"Denis Rosa, Developer Advocate, Couchbase\"},\"description\":\"Denis Rosa is a Developer Advocate for Couchbase and lives in Munich - Germany. He has a solid experience as a software engineer and speaks fluently Java, Python, Scala and Javascript. Denis likes to write about search, Big Data, AI, Microservices and everything else that would help developers to make a beautiful, faster, stable and scalable app.\",\"sameAs\":[\"https:\/\/x.com\/deniswsrosa\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/denis-rosa\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Deep Dive on Cross Data Center Replication - The Couchbase Blog","description":"What makes XDCR such a great feature. If you need a Disaster & Recovery plan or like to bring data closer to user, XDCR is a feature you must consider.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/pt\/deep-dive-cross-data-center-replication-xdcr\/","og_locale":"pt_BR","og_type":"article","og_title":"Deep Dive on Cross Data Center Replication (XDCR)","og_description":"What makes XDCR such a great feature. If you need a Disaster & Recovery plan or like to bring data closer to user, XDCR is a feature you must consider.","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/deep-dive-cross-data-center-replication-xdcr\/","og_site_name":"The Couchbase Blog","article_published_time":"2017-12-22T16:24:26+00:00","article_modified_time":"2025-06-14T03:46:34+00:00","og_image":[{"width":2268,"height":914,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/12\/Screen-Shot-2017-12-18-at-11.51.21-AM.png","type":"image\/png"}],"author":"Denis Rosa, Developer Advocate, Couchbase","twitter_card":"summary_large_image","twitter_creator":"@deniswsrosa","twitter_misc":{"Written by":"Denis Rosa, Developer Advocate, Couchbase","Est. reading time":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/deep-dive-cross-data-center-replication-xdcr\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/deep-dive-cross-data-center-replication-xdcr\/"},"author":{"name":"Denis Rosa, Developer Advocate, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/fe3c5273e805e72a5294611a48f62257"},"headline":"Deep Dive on Cross Data Center Replication (XDCR)","datePublished":"2017-12-22T16:24:26+00:00","dateModified":"2025-06-14T03:46:34+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/deep-dive-cross-data-center-replication-xdcr\/"},"wordCount":898,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/deep-dive-cross-data-center-replication-xdcr\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["Couchbase Architecture","Cross Data Center Replication (XDCR)"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/deep-dive-cross-data-center-replication-xdcr\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/deep-dive-cross-data-center-replication-xdcr\/","url":"https:\/\/www.couchbase.com\/blog\/deep-dive-cross-data-center-replication-xdcr\/","name":"Deep Dive on Cross Data Center Replication - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/deep-dive-cross-data-center-replication-xdcr\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/deep-dive-cross-data-center-replication-xdcr\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2017-12-22T16:24:26+00:00","dateModified":"2025-06-14T03:46:34+00:00","description":"What makes XDCR such a great feature. If you need a Disaster & Recovery plan or like to bring data closer to user, XDCR is a feature you must consider.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/deep-dive-cross-data-center-replication-xdcr\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/deep-dive-cross-data-center-replication-xdcr\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/deep-dive-cross-data-center-replication-xdcr\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/deep-dive-cross-data-center-replication-xdcr\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Deep Dive on Cross Data Center Replication (XDCR)"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"Blog do Couchbase","description":"Couchbase, o banco de dados NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"Blog do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/fe3c5273e805e72a5294611a48f62257","name":"Denis Rosa, defensor dos desenvolvedores, Couchbase","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/be0716f6199cfb09417c92cf7a8fa8d6","url":"https:\/\/secure.gravatar.com\/avatar\/f8d1f5c13115122cab89d0f229b904480bfe20d3dfbb093fe9734cda5235d419?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f8d1f5c13115122cab89d0f229b904480bfe20d3dfbb093fe9734cda5235d419?s=96&d=mm&r=g","caption":"Denis Rosa, Developer Advocate, Couchbase"},"description":"Denis Rosa \u00e9 um Developer Advocate do Couchbase e mora em Munique, na Alemanha. Ele tem uma s\u00f3lida experi\u00eancia como engenheiro de software e fala fluentemente Java, Python, Scala e Javascript. Denis gosta de escrever sobre pesquisa, Big Data, IA, microsservi\u00e7os e tudo o mais que possa ajudar os desenvolvedores a criar um aplicativo bonito, mais r\u00e1pido, est\u00e1vel e escal\u00e1vel.","sameAs":["https:\/\/x.com\/deniswsrosa"],"url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/denis-rosa\/"}]}},"authors":[{"term_id":9059,"user_id":8754,"is_guest":0,"slug":"denis-rosa","display_name":"Denis Rosa, Developer Advocate, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/f8d1f5c13115122cab89d0f229b904480bfe20d3dfbb093fe9734cda5235d419?s=96&d=mm&r=g","author_category":"","last_name":"Rosa, Developer Advocate, Couchbase","first_name":"Denis","job_title":"","user_url":"","description":"Denis Rosa \u00e9 um Developer Advocate do Couchbase e mora em Munique, na Alemanha. Ele tem uma s\u00f3lida experi\u00eancia como engenheiro de software e fala fluentemente Java, Python, Scala e Javascript. Denis gosta de escrever sobre pesquisa, Big Data, IA, microsservi\u00e7os e tudo o mais que possa ajudar os desenvolvedores a criar um aplicativo bonito, mais r\u00e1pido, est\u00e1vel e escal\u00e1vel."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/4386","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/8754"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=4386"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/4386\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=4386"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=4386"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=4386"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=4386"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}