BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Paypal Hera oferece suporte a conexão multiplexada para MySQL e Oracle, e mais

Paypal Hera oferece suporte a conexão multiplexada para MySQL e Oracle, e mais

Favoritos

O framework Hera do Paypal oferece suporte a multiplexação de conexões de bancos de dados MySQL e Oracle, roteamento inteligente de leitura e gravação, fragmentação e recursos de despejo automático de SQL. Petrica Voicu e Kenneth Kang, da equipe de desenvolvimento do PayPal, falaram no QCon New York 2019, sobre o gateway de acesso a dados. O Hera (acrônimo para High Efficiency Reliable Access, que significa Acesso Confiável de Alta Eficiência a armazenamentos de dados), recentemente aberto sob o modelo de licença do Apache 2.0, e é usado para escalabilidade de várias aplicações do PayPal.

O Hera foi originalmente desenvolvido em C ++, mas migrou recentemente para a linguagem de programação Go. Também fornece conexões seguras entre aplicações e bancos de dados, bem como recuperação de falhas transacionais (failover) entre aplicações e bancos de dados de réplica.

Voicu iniciou a apresentação falando sobre o acesso típico ao banco de dados por aplicações e microservices, na qual que cada conexão de banco de dados demora muito para ser estabelecida. O uso de um pool de conexões com o banco de dados ajuda a pré-estabelecer a conexão, o armazenamento em cache e a reutilização da conexão para cada solicitação do cliente, mas cria um processo de sombra e a partir do momento em existam muitos microservices, faz-se necessário configurar o cache de um pool de cache grande o suficiente que garanta a disponibilidade.

Algumas das soluções para enfrentar esses desafios incluem o seguinte:

  • Pool particionado de conexões;
  • Pool compartilhado de conexões;
  • Multiplexação.

O Hera foi desenvolvido com o objetivo de lidar com as restrições dessas diferentes abordagens de gerenciamento de conexão de banco de dados. O Hera é basicamente um multiplexador de pool de conexões compartilhado baseado no conceito de "primeiro microservice de proxy de banco de dados", o que ajuda na abstração de várias linguagens diferentes (de diferentes aplicações clientes) conectando-se ao banco de dados.

Voicu e Kang discutiram os seguintes princípios e restrições do uso do framework Hera em aplicações clientes:

  • Correção;
  • Configuração mínima;
  • Cliente enxuto;
  • Mudança mínima para o protocolo de conexão.

A divisão de gravação e leitura também é suportada, no qual cada instância de banco de dados troca informações de bloqueio com outros bancos de dados dentro de uma estrutura de cluster. As consultas de gravação do banco de dados são separadas e direcionadas para um nó. Isso reduz o tráfego entre os nós do banco de dados. O Hera converte automaticamente a consulta de aplicação usando reescritas de SQL para que a consulta seja compatível com o Sharding. O Sharding ajuda na redistribuição controlada de dados. O Hera mantém a lógica de fragmentação no servidor, portanto, isolando a aplicação cliente da responsabilidade de gerenciar essa fragmentação.

Seus recursos de resiliência para sobrescrita de consulta incluem uma fila de sobrecarga para colocar as solicitações de serviço em uma fila e processar assim que outra solicitação de serviço for concluída. O Hera também cuida do descarte de consultas lentas para liberar espaço para priorizar consultas típicas em detrimento a uma consulta dispendiosa. O failover da aplicações é realizado de forma transparente, usando técnicas como repetição de réplica de leitura. O framework também cuida da liberação de conexões de banco de dados em cada nó Hera após as consultas serem executadas.

O framework ainda pode ser utilizado para monitorar o uso de consultas, o que ajuda na manutenção do banco de dados sem o impacto do cliente.

Se você quiser contribuir com o framework Hera, confira o site para obter mais detalhes.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT