{"id":73446,"date":"2020-03-09T20:41:59","date_gmt":"2020-03-09T17:41:59","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/pochemu-mozhet-ponadobitsya-polusinhronnaya-replikacziya"},"modified":"2020-03-09T20:41:59","modified_gmt":"2020-03-09T17:41:59","slug":"pochemu-mozhet-ponadobitsya-polusinhronnaya-replikacziya","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/pochemu-mozhet-ponadobitsya-polusinhronnaya-replikacziya","title":{"rendered":"Por que a replica\u00e7\u00e3o semiss\u00edncrona pode ser necess\u00e1ria?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>Ol\u00e1 a todos. Aqui \u00e9 Vladislav Rodin. Neste momento, estou ensinando no portal OTUS cursos dedicados \u00e0 arquitetura de software e arquitetura de software sob alta carga. <b>Na v\u00e9spera do in\u00edcio de um novo ciclo do curso <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/jvDY\/\">\u00abArquiteto de altas cargas\u00bb<\/a><\/noindex> decidi escrever um pequeno material autoral que gostaria de compartilhar com voc\u00eas.<\/b><\/i><\/p>\n<p><img decoding=\"async\" alt=\"Por que a replica\u00e7\u00e3o semiss\u00edncrona pode ser necess\u00e1ria?\" src=\"\/wp-content\/uploads\/2020\/03\/c2a1ea514249f8fca1ab9f668a899981.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Introdu\u00e7\u00e3o<\/h2>\n<p>\nDevido ao fato de que um HDD pode realizar apenas cerca de 400-700 opera\u00e7\u00f5es por segundo (o que \u00e9 incompar\u00e1vel com os rps t\u00edpicos em um sistema de alta carga), um banco de dados tradicional baseado em disco se torna um gargalo na arquitetura. Portanto, \u00e9 necess\u00e1rio prestar aten\u00e7\u00e3o especial aos padr\u00f5es de escalabilidade deste armazenamento.<\/p>\n<p>Atualmente, existem 2 padr\u00f5es de escalabilidade para o banco de dados: replica\u00e7\u00e3o e sharding. O sharding permite escalar a opera\u00e7\u00e3o de grava\u00e7\u00e3o e, como consequ\u00eancia, reduzir o rps de grava\u00e7\u00e3o por servidor do seu cluster. A replica\u00e7\u00e3o faz o mesmo, mas com opera\u00e7\u00f5es de leitura. Este padr\u00e3o est\u00e1 dedicado a este artigo.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Replica\u00e7\u00e3o<\/h2>\n<p>\nSe olharmos para a replica\u00e7\u00e3o de maneira bem superficial, \u00e9 algo simples: voc\u00ea tinha um servidor, onde os dados estavam armazenados, e ent\u00e3o esse servidor n\u00e3o conseguia mais lidar com a carga de leitura desses dados. Voc\u00ea adiciona mais alguns servidores, sincroniza os dados em todos os servidores e o usu\u00e1rio pode ler de qualquer servidor do seu cluster. <\/p>\n<p>Apesar da aparente simplicidade, existem v\u00e1rias maneiras de classificar diferentes implementa\u00e7\u00f5es deste esquema:<\/p>\n<ul>\n<li>Por pap\u00e9is no cluster (master-master ou master-slave)<\/li>\n<li>Por objetos transmitidos (baseado em linha, baseado em declara\u00e7\u00e3o ou misto)<\/li>\n<li>Pelo mecanismo de sincroniza\u00e7\u00e3o dos n\u00f3s<\/li>\n<\/ul>\n<p>\nHoje, vamos nos concentrar exatamente no 3\u00ba ponto. <\/p>\n<h2>Como ocorre o commit da transa\u00e7\u00e3o<\/h2>\n<p>\nEste tema n\u00e3o est\u00e1 diretamente relacionado \u00e0 replica\u00e7\u00e3o; um artigo separado pode ser escrito sobre isso, por\u00e9m, como a compreens\u00e3o do mecanismo de commit da transa\u00e7\u00e3o \u00e9 essencial para a leitura posterior, permitam-me lembrar os pontos mais b\u00e1sicos. O commit da transa\u00e7\u00e3o ocorre em 3 etapas:<\/p>\n<ol>\n<li>Grava\u00e7\u00e3o da transa\u00e7\u00e3o no log do banco de dados.<\/li>\n<li>Aplica\u00e7\u00e3o da transa\u00e7\u00e3o no mecanismo do banco de dados.<\/li>\n<li>Retorno da confirma\u00e7\u00e3o ao cliente sobre a aplica\u00e7\u00e3o bem-sucedida da transa\u00e7\u00e3o.<\/li>\n<\/ol>\n<p>\nEm diferentes bancos de dados, nuances podem surgir neste algoritmo: por exemplo, no mecanismo InnoDB do MySQL, existem 2 logs: um para replica\u00e7\u00e3o (binary log) e outro para manter ACID (undo\/redolog), enquanto no PostgreSQL h\u00e1 um \u00fanico log que desempenha ambas as fun\u00e7\u00f5es (write ahead log = WAL). No entanto, o que foi apresentado \u00e9 a concep\u00e7\u00e3o geral que permite ignorar essas nuances.<\/p>\n<h2>Replica\u00e7\u00e3o s\u00edncrona (sync)<\/h2>\n<p>\nVamos adicionar ao algoritmo de commit da transa\u00e7\u00e3o a l\u00f3gica para replicar as mudan\u00e7as recebidas:<\/p>\n<ol>\n<li>Grava\u00e7\u00e3o da transa\u00e7\u00e3o no log do banco de dados.<\/li>\n<li>Aplica\u00e7\u00e3o da transa\u00e7\u00e3o no mecanismo do banco de dados.<\/li>\n<li><b>Envio de dados para todas as r\u00e9plicas.<\/b><\/li>\n<li><b>Recebendo a confirma\u00e7\u00e3o de todas as r\u00e9plicas sobre a execu\u00e7\u00e3o da transa\u00e7\u00e3o nelas.<\/b><\/li>\n<li>Retorno da confirma\u00e7\u00e3o ao cliente sobre a aplica\u00e7\u00e3o bem-sucedida da transa\u00e7\u00e3o.<\/li>\n<\/ol>\n<p>\nCom essa abordagem, obtivemos uma s\u00e9rie de desvantagens: <\/p>\n<ul>\n<li>o cliente espera pela aplica\u00e7\u00e3o das mudan\u00e7as em todas as r\u00e9plicas.<\/li>\n<li>\u00e0 medida que aumentamos o n\u00famero de n\u00f3s no cluster, diminu\u00edmos a probabilidade de que a opera\u00e7\u00e3o de grava\u00e7\u00e3o seja bem-sucedida.<\/li>\n<\/ul>\n<p>\nSe com o 1\u00ba ponto tudo est\u00e1 mais ou menos claro, a raz\u00e3o do 2\u00ba ponto merece uma explica\u00e7\u00e3o. Se na replica\u00e7\u00e3o s\u00edncrona n\u00e3o obtermos resposta de pelo menos um n\u00f3, revertamos a transa\u00e7\u00e3o. Assim, ao aumentar o n\u00famero de n\u00f3s no cluster, voc\u00ea aumenta a probabilidade de que a opera\u00e7\u00e3o de grava\u00e7\u00e3o falhe. <\/p>\n<p>Podemos esperar confirma\u00e7\u00e3o apenas de uma parte dos n\u00f3s, por exemplo, de 51% (quorum)? Sim, podemos, no entanto, na vers\u00e3o cl\u00e1ssica, \u00e9 necess\u00e1rio receber a confirma\u00e7\u00e3o de todos os n\u00f3s, pois \u00e9 assim que podemos garantir a consist\u00eancia total dos dados no cluster, o que \u00e9 uma indiscut\u00edvel vantagem desse tipo de replica\u00e7\u00e3o.<\/p>\n<h2>Replica\u00e7\u00e3o ass\u00edncrona (async)<\/h2>\n<p>\nVamos modificar o algoritmo anterior. Enviaremos os dados para as r\u00e9plicas \"algum tempo depois\", e \"algum tempo depois\" as mudan\u00e7as ser\u00e3o aplicadas nas r\u00e9plicas:<\/p>\n<ol>\n<li>Grava\u00e7\u00e3o da transa\u00e7\u00e3o no log do banco de dados.<\/li>\n<li>Aplica\u00e7\u00e3o da transa\u00e7\u00e3o no mecanismo do banco de dados.<\/li>\n<li>Retorno da confirma\u00e7\u00e3o ao cliente sobre a aplica\u00e7\u00e3o bem-sucedida da transa\u00e7\u00e3o.<\/li>\n<li><b>Envio de dados para as r\u00e9plicas e aplica\u00e7\u00e3o das mudan\u00e7as por elas.<\/b><\/li>\n<\/ol>\n<p>\nEssa abordagem leva ao resultado de que o cluster opera rapidamente, pois n\u00e3o mantemos o cliente esperando at\u00e9 que os dados cheguem \u00e0s r\u00e9plicas e sejam confirmados.<\/p>\n<p>Mas a condi\u00e7\u00e3o de enviar os dados para as r\u00e9plicas \"algum tempo depois\" pode levar \u00e0 perda de transa\u00e7\u00f5es, especialmente de transa\u00e7\u00f5es j\u00e1 confirmadas ao usu\u00e1rio; pois, se os dados n\u00e3o forem replicados a tempo, e a confirma\u00e7\u00e3o ao cliente sobre o sucesso da opera\u00e7\u00e3o for enviada, mas o HDD do n\u00f3 que recebeu as mudan\u00e7as falhar, perderemos a transa\u00e7\u00e3o, o que pode trazer consequ\u00eancias muito desagrad\u00e1veis.<\/p>\n<h2>Replica\u00e7\u00e3o semi-s\u00edncrona (semisync)<\/h2>\n<p>\nFinalmente, chegamos \u00e0 replica\u00e7\u00e3o semiss\u00edncrona. Esse tipo de replica\u00e7\u00e3o n\u00e3o \u00e9 muito conhecido e n\u00e3o \u00e9 t\u00e3o comum, mas desperta um interesse consider\u00e1vel, pois pode combinar as vantagens da replica\u00e7\u00e3o s\u00edncrona e ass\u00edncrona.<\/p>\n<p>Vamos tentar combinar as duas abordagens anteriores. N\u00e3o vamos manter o cliente esperando, mas exigiremos que os dados sejam replicados:<\/p>\n<ol>\n<li>Grava\u00e7\u00e3o da transa\u00e7\u00e3o no log do banco de dados.<\/li>\n<li>Aplica\u00e7\u00e3o da transa\u00e7\u00e3o no mecanismo do banco de dados.<\/li>\n<li><b>Envio de dados para as r\u00e9plicas.<\/b><\/li>\n<li><b>Recebimento de confirma\u00e7\u00e3o da r\u00e9plica sobre a recep\u00e7\u00e3o das altera\u00e7\u00f5es (aplicadas elas ser\u00e3o \"algum momento depois\").<\/b><\/li>\n<li>Retorno da confirma\u00e7\u00e3o ao cliente sobre a aplica\u00e7\u00e3o bem-sucedida da transa\u00e7\u00e3o.<\/li>\n<\/ol>\n<p>\nObserve que, com esse algoritmo, a perda de uma transa\u00e7\u00e3o ocorre apenas no caso de falha tanto do n\u00f3 que realiza as altera\u00e7\u00f5es quanto do n\u00f3 r\u00e9plica. A probabilidade dessa falha \u00e9 considerada baixa, e esses riscos s\u00e3o aceitos. <\/p>\n<p>Mas, com essa abordagem, existe o risco de leituras fantasmas. Vamos imaginar o seguinte cen\u00e1rio: no passo 4, n\u00e3o recebemos confirma\u00e7\u00e3o de nenhuma r\u00e9plica. Precisamos reverter essa transa\u00e7\u00e3o, mas n\u00e3o retornamos a confirma\u00e7\u00e3o ao cliente. Como os dados foram aplicados no passo 2, entre o t\u00e9rmino do passo 2 e a revers\u00e3o da transa\u00e7\u00e3o, h\u00e1 uma lacuna de tempo, durante a qual transa\u00e7\u00f5es paralelas podem ver essas altera\u00e7\u00f5es que n\u00e3o deveriam estar no banco de dados. <\/p>\n<h2>Replica\u00e7\u00e3o semiss\u00edncrona sem perda<\/h2>\n<p>\nSe pensarmos um pouco, podemos corrigir o problema das leituras fantasmas neste cen\u00e1rio, simplesmente trocando a ordem dos passos do algoritmo:<\/p>\n<ol>\n<li>Grava\u00e7\u00e3o da transa\u00e7\u00e3o no log do banco de dados.<\/li>\n<li><b>Envio de dados da r\u00e9plica.<\/b><\/li>\n<li><b>Recebimento de confirma\u00e7\u00e3o da r\u00e9plica sobre a recep\u00e7\u00e3o das altera\u00e7\u00f5es (aplicadas elas ser\u00e3o \"algum momento depois\").<\/b><\/li>\n<li>Aplica\u00e7\u00e3o da transa\u00e7\u00e3o no mecanismo do banco de dados.<\/li>\n<li>Retorno da confirma\u00e7\u00e3o ao cliente sobre a aplica\u00e7\u00e3o bem-sucedida da transa\u00e7\u00e3o.<\/li>\n<\/ol>\n<p>\nAgora, s\u00f3 comitamos as altera\u00e7\u00f5es se elas foram replicadas. <\/p>\n<h2>Sa\u00edda<\/h2>\n<p>\nComo sempre, n\u00e3o existem solu\u00e7\u00f5es perfeitas, existe um conjunto de solu\u00e7\u00f5es, cada uma com suas vantagens e desvantagens e adequada para resolver diferentes classes de problemas. Isso \u00e9 verdade tamb\u00e9m para a escolha do mecanismo de sincroniza\u00e7\u00e3o de dados de um banco de dados replicado. O conjunto de vantagens que a replica\u00e7\u00e3o semiss\u00edncrona oferece \u00e9 s\u00f3lido e interessante o suficiente para ser reconhecido como digna de aten\u00e7\u00e3o, apesar de sua baixa dissemina\u00e7\u00e3o.<\/p>\n<p><b>Isso \u00e9 tudo. At\u00e9 breve em <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/jvDY\/\">curso<\/a><\/noindex>!<\/b><br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/491106\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041d\u0430 \u0441\u0432\u044f\u0437\u0438 \u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u0420\u043e\u0434\u0438\u043d. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u044f \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u044e \u043d\u0430 \u043f\u043e\u0440\u0442\u0430\u043b\u0435 OTUS \u043a\u0443\u0440\u0441\u044b, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u041f\u041e \u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u041f\u041e, \u043f\u043e\u0434\u0432\u0435\u0440\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0435. \u0412 \u043f\u0440\u0435\u0434\u0434\u0432\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0440\u0442\u0430 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u043a\u0443\u0440\u0441\u0430 \u00ab\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440 \u0432\u044b\u0441\u043e\u043a\u0438\u0445 \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u043a\u00bb \u044f \u0440\u0435\u0448\u0438\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u0438\u0439 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0432\u0430\u043c\u0438. \u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0418\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043d\u0430 HDD \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043b\u0438\u0448\u044c \u043f\u043e\u0440\u044f\u0434\u043a\u0430 400-700 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":73447,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-73446","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041d\u0430 \u0441\u0432\u044f\u0437\u0438 \u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u0420\u043e\u0434\u0438\u043d. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u044f \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u044e \u043d\u0430 \u043f\u043e\u0440\u0442\u0430\u043b\u0435 OTUS \u043a\u0443\u0440\u0441\u044b, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u041f\u041e \u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u041f\u041e, \u043f\u043e\u0434\u0432\u0435\u0440\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0435.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/pochemu-mozhet-ponadobitsya-polusinhronnaya-replikacziya\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u043e\u0447\u0435\u043c\u0443 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u043f\u043e\u043b\u0443\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0430\u044f \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u044f? | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041d\u0430 \u0441\u0432\u044f\u0437\u0438 \u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u0420\u043e\u0434\u0438\u043d. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u044f \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u044e \u043d\u0430 \u043f\u043e\u0440\u0442\u0430\u043b\u0435 OTUS \u043a\u0443\u0440\u0441\u044b, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u041f\u041e \u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u041f\u041e, \u043f\u043e\u0434\u0432\u0435\u0440\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0435.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/pochemu-mozhet-ponadobitsya-polusinhronnaya-replikacziya\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-03-09T17:41:59+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-03-09T17:41:59+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Por que a replica\u00e7\u00e3o semiss\u00edncrona pode ser necess\u00e1ria? | ProHoster","description":"Ol\u00e1 a todos. Aqui \u00e9 Vladislav Rodin. Neste momento, estou ensinando no portal OTUS cursos dedicados \u00e0 arquitetura de software e arquitetura de software sob alta carga.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/pochemu-mozhet-ponadobitsya-polusinhronnaya-replikacziya","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u043e\u0447\u0435\u043c\u0443 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u043f\u043e\u043b\u0443\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0430\u044f \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u044f? | ProHoster","og:description":"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041d\u0430 \u0441\u0432\u044f\u0437\u0438 \u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u0420\u043e\u0434\u0438\u043d. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u044f \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u044e \u043d\u0430 \u043f\u043e\u0440\u0442\u0430\u043b\u0435 OTUS \u043a\u0443\u0440\u0441\u044b, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u041f\u041e \u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u041f\u041e, \u043f\u043e\u0434\u0432\u0435\u0440\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0435.","og:url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/pochemu-mozhet-ponadobitsya-polusinhronnaya-replikacziya","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-03-09T17:41:59+00:00","article:modified_time":"2020-03-09T17:41:59+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"73446","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 11:50:08","updated":"2022-09-28 11:57:57","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/73446","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=73446"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/73446\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/73447"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=73446"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=73446"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=73446"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}