Rate Limiting em GoLang: Como Implementar Controle de Fluxo em Suas Aplicações

แชร์
ฝัง
  • เผยแพร่เมื่อ 2 ก.พ. 2025

ความคิดเห็น • 6

  • @ediltonpwd
    @ediltonpwd 12 วันที่ผ่านมา

    Parabéns pelo vídeo, cara! Muito didático. Sobre o tema, tenho uma dúvida: qual seria a diferença, vantagens e desvantagens dessa implementação do Rate Limiting usando o pacote Go para usar o Redis, por exemplo? Qual caso de uso/cenários você recomenda mais um ou outro?

    • @huncoding
      @huncoding  12 วันที่ผ่านมา +3

      Obrigado pelo comentário!
      Sobre a diferença: o Rate Limiting em Go (in-memory) é mais simples, rápido e ideal para aplicações rodando em uma única instância, mas não funciona bem em ambientes distribuídos. Já com Redis, você consegue sincronizar limites entre várias instâncias, o que é bom para aplicações distribuídas, mas adiciona dependência, aplicação/cluster externo e um pouco de latência de rede.
      Recomendo in-memory para soluções simples e Redis para arquiteturas escaláveis

    • @ediltonpwd
      @ediltonpwd 12 วันที่ผ่านมา

      @@huncoding , genial. Obrigado!

  • @brenocabral5924
    @brenocabral5924 11 วันที่ผ่านมา

    O ideal para caso eu tenha um limite geral de requisições seria então fazer o limiter global em conjunto com o limiter por ip? Tentando evitar que apenas um ip gaste todo o limite mas também evitando um estouro por uma quantidade grande de usuários

    • @costathoughts
      @costathoughts 11 วันที่ผ่านมา

      Pensa no exemplo do Stripe, tu gera uma Key que pode ter X numero de req/s. Seria a mesma coisa

    • @huncoding
      @huncoding  10 วันที่ผ่านมา

      Seria legal uma configuração dessa sim, isso coloca uma grande camada de segurança na aplicação. O bloqueio por IP nem sempre é tão necessário, acaba sendo bem específico, mas funciona muito bem se implementado.