{"id":3530,"date":"2016-03-09T14:56:11","date_gmt":"2016-03-09T17:56:11","guid":{"rendered":"http:\/\/blog.dialhost.com.br\/?p=3530"},"modified":"2016-03-09T14:56:11","modified_gmt":"2016-03-09T17:56:11","slug":"cluster-de-banco-de-dados-eficiencia-de-leitura-e-escrita-em-projetos-de-grande-trafego","status":"publish","type":"post","link":"https:\/\/www.dialhost.com.br\/blog\/cluster-de-banco-de-dados-eficiencia-de-leitura-e-escrita-em-projetos-de-grande-trafego\/","title":{"rendered":"Cluster de banco de dados &#8211; Efici\u00eancia em projetos de grande tr\u00e1fego"},"content":{"rendered":"<figure id=\"attachment_3562\" aria-describedby=\"caption-attachment-3562\" style=\"width: 700px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" class=\"size-full wp-image-3562\" src=\"http:\/\/blog.dialhost.com.br\/wp-content\/uploads\/2016\/03\/cluster-banco.jpg\" alt=\"Cluster de banco de dados\" width=\"700\" height=\"260\" \/><figcaption id=\"caption-attachment-3562\" class=\"wp-caption-text\">imagem ilustrativa<\/figcaption><\/figure>\n<p>No m\u00eas de fevereiro abordamos sobre a mudan\u00e7a de uma <a href=\"http:\/\/blog.dialhost.com.br\/cloud-2\/sera-que-meu-site-esta-precisando-de-uma-estrutura-cloud\/\" target=\"_blank\" rel=\"noopener noreferrer\">hospedagem compartilhada para uma hospedagem cloud<\/a> e quais fatores devem ser levados em conta\u00a0para esta decis\u00e3o. Agora vamos para um assunto mais avan\u00e7ado e focado no desempenho de consultas e escritas em banco de dados. A cria\u00e7\u00e3o de cluster de banco de dados.<\/p>\n<p>A arquitetura de cluster de banco de dados \u00e9 formada pela redund\u00e2ncia do seu banco de dados em 2 inst\u00e2ncias ou mais inst\u00e2ncias. Estas inst\u00e2ncias, ent\u00e3o, s\u00e3o balanceadas de forma a dividir com efici\u00eancia a quantidade de requisi\u00e7\u00f5es ao banco. Mas, vamos por partes. Neste artigo pretendemos mostrar como funciona esta arquitetura.<\/p>\n<figure id=\"attachment_3553\" aria-describedby=\"caption-attachment-3553\" style=\"width: 700px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" class=\"size-full wp-image-3553\" src=\"http:\/\/blog.dialhost.com.br\/wp-content\/uploads\/2016\/03\/arq-01.png\" alt=\"Cluster de banco de dados\" width=\"700\" height=\"260\" \/><figcaption id=\"caption-attachment-3553\" class=\"wp-caption-text\">Exemplo 1 &#8211; Arquitetura simples de cluster com configura\u00e7\u00e3o Master-Master<\/figcaption><\/figure>\n<div id=\"toc_container\" class=\"have_bullets\"><p class=\"toc_title\">T&oacute;picos<\/p><ul class=\"toc_list\"><li><a href=\"#camada-de-aplicacao\">Camada de Aplica\u00e7\u00e3o<\/a><\/li><li><a href=\"#camada-load-balancer\">Camada Load Balancer<\/a><\/li><li><a href=\"#camada-do-cluster-de-banco-de-dados\">Camada do cluster de banco de dados<\/a><\/li><li><a href=\"#finalizando\">Finalizando<\/a><ul><li><a href=\"#pros\">Pr\u00f3s<\/a><\/li><li><a href=\"#contras\">Contras<\/a><\/li><\/ul><\/li><\/ul><\/div>\n<h2><span id=\"camada-de-aplicacao\">Camada de Aplica\u00e7\u00e3o<\/span><\/h2>\n<p>A camada de aplica\u00e7\u00e3o \u00e9 a parte que ter\u00e1 contato com o usu\u00e1rio e ela dever\u00e1 ser inteligente para disparar requisi\u00e7\u00f5es de escrita e leitura para as inst\u00e2ncias respons\u00e1veis por cada a\u00e7\u00e3o.<\/p>\n<p>No diagrama exemplificado acima temos uma estrutura\u00a0mais simples, onde todo o cluster faz leitura e escrita (configura\u00e7\u00e3o master-master). Neste caso apenas a camada de load balancing ser\u00e1 o suficiente para balancear a carga. \u00a0Mas em um projeto de alto fluxo isto ainda pode gerar gargalos de requisi\u00e7\u00e3o e assim \u00e9 melhor dividir as responsabilidades ainda mais.<\/p>\n<p>No exemplo abaixo podemos ver uma arquitetura que divide o banco de dados em 4 inst\u00e2ncias, sendo 2 respons\u00e1veis por leituras e 2 respons\u00e1veis por escrita.<\/p>\n<figure id=\"attachment_3554\" aria-describedby=\"caption-attachment-3554\" style=\"width: 700px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" class=\"size-full wp-image-3554\" src=\"http:\/\/blog.dialhost.com.br\/wp-content\/uploads\/2016\/03\/arq-02.png\" alt=\"Cluster de banco de dados\" width=\"700\" height=\"500\" \/><figcaption id=\"caption-attachment-3554\" class=\"wp-caption-text\">Exemplo 2 &#8211; Arquitetura dividida de cluster com Load Balancer para banco de leitura e escrita.<\/figcaption><\/figure>\n<h2><span id=\"camada-load-balancer\">Camada Load Balancer<\/span><\/h2>\n<p>A camada Load Balancer ser\u00e1 respons\u00e1vel por receber a requisi\u00e7\u00e3o da aplica\u00e7\u00e3o e balancear a carga de forma efetiva para seus respectivos bancos de dados. No caso do <strong>exemplo 1<\/strong>, a aplica\u00e7\u00e3o vai simplesmente mandar a requisi\u00e7\u00e3o e o load balancer vai dividir cada requisi\u00e7\u00e3o para cada inst\u00e2ncia de banco de dados sem nenhuma interfer\u00eancia da aplica\u00e7\u00e3o.<\/p>\n<p>No <strong>exemplo 2<\/strong>, a camada de aplica\u00e7\u00e3o ir\u00e1 trabalhar em conjunto com 2 load balancer. Sendo, um dividindo as cargas com os bancos de leitura e o outro com os bancos de escrita.<\/p>\n<p>Assim, a camada Load Balancer ser\u00e1 respons\u00e1vel por nunca deixar uma inst\u00e2ncia de banco de dados sobrecarregada enquanto a outra estiver ociosa.\u00a0Com isto, seus servi\u00e7o mant\u00e9m maior disponibilidade para um momento de alto fluxo de processos.<\/p>\n<p>Aqui na Dialhost, por exemplo, voc\u00ea consegue fazer esta configura\u00e7\u00e3o do Load Balancer atrav\u00e9s do painel de controle do <a href=\"http:\/\/www.dialhost.com.br\/cloud-computing\/planos-dialcloud-plus?utm_source=dialhost-blog&amp;utm_medium=link-post-blog&amp;utm_campaign=link-on-post\" target=\"_blank\" rel=\"noopener noreferrer\">DialCloud +<\/a><\/p>\n<h2><span id=\"camada-do-cluster-de-banco-de-dados\">Camada do cluster de banco de dados<\/span><\/h2>\n<p>Esta \u00e9 a camada principal da arquitetura e se n\u00e3o for bem planejada tudo pode ir por \u00e1gua abaixo. A primeira coisa a se pensar \u00e9 qual o n\u00edvel de gargalo seu sistema se encontra hoje. Caso seja um gargalo geral de requisi\u00e7\u00f5es porque seu banco de dados\u00a0encontra-se todo em apenas uma inst\u00e2ncia o primeiro exemplo pode ser o suficiente para voc\u00ea. Mesmo tendo uma divis\u00e3o mais b\u00e1sica onde todas as inst\u00e2ncias leem e escrevem, o fato de ter uma nova inst\u00e2ncia para dividir a carga de processos j\u00e1 ir\u00e1 equilibrar o uso de recursos.<\/p>\n<p>Vale aqui, analisar o n\u00edvel de complexidade do sistema em quest\u00e3o. Para um portal com muito conte\u00fado, como por exemplo globo.com, esta arquitetura do <strong>exemplo 1<\/strong> pode ser ineficiente, dada a quantidade de dados que lidos e inseridos a todo momento.<\/p>\n<p>Ap\u00f3s escolher entre o <strong>exemplo 1<\/strong> ou o <strong>exemplo 2<\/strong>\u00a0\u00e9 necess\u00e1rio configurar todas as inst\u00e2ncias para que elas mantenham sincronismo de dados. Qualquer falha de sincronismo aqui pode acabar com a estabilidade do seu sistema. Isto porque, um dado inserido no banco da inst\u00e2ncia X n\u00e3o conseguir\u00e1 ser lido na inst\u00e2ncia Z ou Y. A falta de sincronismo na verdade, \u00e9 um dos grandes contras desta arquitetura.<\/p>\n<h2><span id=\"finalizando\">Finalizando<\/span><\/h2>\n<p>O cluster de dados se bem montado otimiza bastante as requisi\u00e7\u00f5es ao seu banco de dados.\u00a0Mas, como podemos ver ele possui pr\u00f3s e contras em sua utiliza\u00e7\u00e3o.<\/p>\n<h3><span id=\"pros\">Pr\u00f3s<\/span><\/h3>\n<ul>\n<li>Melhora a performance de escrita no banco de dados, j\u00e1 que elas podem ser espalhadas em infinitos bancos de dados;<\/li>\n<li>Permite que seu sistema escalone em seu cloud sem limita\u00e7\u00f5es;<\/li>\n<li>Pode ser ainda mais otimizado, disponibilizando bancos somente para leitura e outros para escrita;<\/li>\n<\/ul>\n<h3><span id=\"contras\">Contras<\/span><\/h3>\n<ul>\n<li>A aplica\u00e7\u00e3o deve ser inteligente para saber balancear a carga entre as inst\u00e2ncias;<\/li>\n<li>Se a sincroniza\u00e7\u00e3o de dados for ass\u00edncrona, \u00e9 poss\u00edvel que os dados estejam fora de sincronia por quest\u00f5es de segundos;<\/li>\n<li>Se o banco de dados master (central) falhar, \u00e9 preciso arrumar-lo para que o cluster volte a funcionar;<\/li>\n<\/ul>\n<div class=\"publicidade\">\n<div id=\"texto\">Tenha controle e flexibilidade nos seus recursos com DialCloud +. Servidores em cloud com load balancing, VPN e todo o controle de rede que voc\u00ea precisa. <a title=\"DialCloud +\" href=\"http:\/\/www.dialhost.com.br\/cloud-computing\/planos-dialcloud-plus?utm_source=dialhost-blog&amp;utm_medium=link-post-blog&amp;utm_campaign=publicidade-blog\" target=\"_blank\" rel=\"noopener noreferrer\">Saiba Mais<\/a>.<\/div>\n<\/div>\n<p>&nbsp;\t\t\t\t<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\t\t\t\tA arquitetura de clusters de banco de dados \u00e9 formada pela redund\u00e2ncia do seu banco de dados em 2 inst\u00e2ncias ou mais inst\u00e2ncias. Estas inst\u00e2ncias, ent\u00e3o, s\u00e3o balanceadas de forma a dividir com efici\u00eancia a quantidade de requisi\u00e7\u00f5es ao banco. \t\t\t\t<\/p>\n","protected":false},"author":1,"featured_media":3563,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[14,15,20,12],"tags":[40,51,52,53],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v15.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Cluster de banco de dados - Efici\u00eancia em projetos de grande tr\u00e1fego - Blog DialHost<\/title>\n<meta name=\"description\" content=\"A arquitetura de cluster de banco de dados \u00e9 formada pela redund\u00e2ncia do seu banco de dados em 2 inst\u00e2ncias ou mais inst\u00e2ncias.\" \/>\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.dialhost.com.br\/blog\/cluster-de-banco-de-dados-eficiencia-de-leitura-e-escrita-em-projetos-de-grande-trafego\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cluster de banco de dados - Efici\u00eancia em projetos de grande tr\u00e1fego - Blog DialHost\" \/>\n<meta property=\"og:description\" content=\"A arquitetura de cluster de banco de dados \u00e9 formada pela redund\u00e2ncia do seu banco de dados em 2 inst\u00e2ncias ou mais inst\u00e2ncias.\" \/>\n<meta property=\"og:url\" content=\"\/blog\/cluster-de-banco-de-dados-eficiencia-de-leitura-e-escrita-em-projetos-de-grande-trafego\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog DialHost\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/www.facebook.com\/DialHost\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/DialHost\" \/>\n<meta property=\"article:published_time\" content=\"2016-03-09T17:56:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dialhost.com.br\/blog\/wp-content\/uploads\/2019\/04\/og-image.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@dialhost\" \/>\n<meta name=\"twitter:site\" content=\"@dialhost\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#organization\",\"name\":\"DialHost Internet\",\"url\":\"https:\/\/www.dialhost.com.br\/blog\/\",\"sameAs\":[\"http:\/\/www.facebook.com\/DialHost\",\"https:\/\/www.instagram.com\/dialhost_oficial\/\",\"https:\/\/www.linkedin.com\/company\/dialhost-internet\",\"https:\/\/www.youtube.com\/channel\/UCAiqiX8IiqTSfA8wQhpzgXQ\",\"https:\/\/twitter.com\/dialhost\"],\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#logo\",\"inLanguage\":\"pt-BR\",\"url\":\"https:\/\/www.dialhost.com.br\/blog\/wp-content\/uploads\/2019\/03\/marca-dialhost.png\",\"width\":81,\"height\":81,\"caption\":\"DialHost Internet\"},\"image\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#logo\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#website\",\"url\":\"https:\/\/www.dialhost.com.br\/blog\/\",\"name\":\"Blog DialHost\",\"description\":\"Os melhores conte\\u00fados sobre Desenvolvimento Web, Marketing e Neg\\u00f3cios\",\"publisher\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/www.dialhost.com.br\/blog\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/cluster-de-banco-de-dados-eficiencia-de-leitura-e-escrita-em-projetos-de-grande-trafego\/#primaryimage\",\"inLanguage\":\"pt-BR\",\"url\":\"\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/cluster-de-banco-de-dados-eficiencia-de-leitura-e-escrita-em-projetos-de-grande-trafego\/#webpage\",\"url\":\"https:\/\/www.dialhost.com.br\/blog\/cluster-de-banco-de-dados-eficiencia-de-leitura-e-escrita-em-projetos-de-grande-trafego\/\",\"name\":\"Cluster de banco de dados - Efici\\u00eancia em projetos de grande tr\\u00e1fego - Blog DialHost\",\"isPartOf\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/cluster-de-banco-de-dados-eficiencia-de-leitura-e-escrita-em-projetos-de-grande-trafego\/#primaryimage\"},\"datePublished\":\"2016-03-09T17:56:11+00:00\",\"dateModified\":\"2016-03-09T17:56:11+00:00\",\"description\":\"A arquitetura de cluster de banco de dados \\u00e9 formada pela redund\\u00e2ncia do seu banco de dados em 2 inst\\u00e2ncias ou mais inst\\u00e2ncias.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/cluster-de-banco-de-dados-eficiencia-de-leitura-e-escrita-em-projetos-de-grande-trafego\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dialhost.com.br\/blog\/cluster-de-banco-de-dados-eficiencia-de-leitura-e-escrita-em-projetos-de-grande-trafego\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/cluster-de-banco-de-dados-eficiencia-de-leitura-e-escrita-em-projetos-de-grande-trafego\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"\/blog\/\",\"url\":\"\/blog\/\",\"name\":\"In\\u00edcio\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"WebPage\",\"@id\":\"\/blog\/cluster-de-banco-de-dados-eficiencia-de-leitura-e-escrita-em-projetos-de-grande-trafego\/\",\"url\":\"\/blog\/cluster-de-banco-de-dados-eficiencia-de-leitura-e-escrita-em-projetos-de-grande-trafego\/\",\"name\":\"Cluster de banco de dados &#8211; Efici\\u00eancia em projetos de grande tr\\u00e1fego\"}}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/cluster-de-banco-de-dados-eficiencia-de-leitura-e-escrita-em-projetos-de-grande-trafego\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/cluster-de-banco-de-dados-eficiencia-de-leitura-e-escrita-em-projetos-de-grande-trafego\/#webpage\"},\"author\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#\/schema\/person\/a0b10cbe35449dea173a06d4664f9fcc\"},\"headline\":\"Cluster de banco de dados &#8211; Efici\\u00eancia em projetos de grande tr\\u00e1fego\",\"datePublished\":\"2016-03-09T17:56:11+00:00\",\"dateModified\":\"2016-03-09T17:56:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/cluster-de-banco-de-dados-eficiencia-de-leitura-e-escrita-em-projetos-de-grande-trafego\/#webpage\"},\"publisher\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/cluster-de-banco-de-dados-eficiencia-de-leitura-e-escrita-em-projetos-de-grande-trafego\/#primaryimage\"},\"keywords\":\"banco de dados,cloud,cloud computing,Cluster\",\"articleSection\":\"Banco de Dados,Cloud Computing,Infraestrutura e Seguran\\u00e7a,Tecnologias\",\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#\/schema\/person\/a0b10cbe35449dea173a06d4664f9fcc\",\"name\":\"DialHost Internet\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#personlogo\",\"inLanguage\":\"pt-BR\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/05feec2f99aef1c42b09aeaa637ee66f?s=96&r=g\",\"caption\":\"DialHost Internet\"},\"description\":\"H\\u00e1 mais de 18 anos proporcionando um servi\\u00e7o de hospedagem de sites voltado 100% na Experi\\u00eancia e Sucesso do Cliente, prezando a qualidade, transpar\\u00eancia e seguran\\u00e7a.\",\"sameAs\":[\"https:\/\/www.facebook.com\/DialHost\",\"https:\/\/www.instagram.com\/dialhost_oficial\/\",\"https:\/\/www.linkedin.com\/company\/dialhost-internet\",\"https:\/\/twitter.com\/dialhost\",\"https:\/\/www.youtube.com\/channel\/UCAiqiX8IiqTSfA8wQhpzgXQ\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/posts\/3530"}],"collection":[{"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/comments?post=3530"}],"version-history":[{"count":0,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/posts\/3530\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/media\/3563"}],"wp:attachment":[{"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/media?parent=3530"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/categories?post=3530"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/tags?post=3530"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}