Skip to content

Servidor proxy de cache em Java que intermedia requisições entre clientes e servidores de origem

Notifications You must be signed in to change notification settings

mfgustav0/caching-proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Servidor Proxy de Cache em Java

Este projeto é um servidor proxy de cache desenvolvido em Java. Ele atua como intermediário entre clientes e servidores de origem, armazenando respostas em cache para otimizar requisições subsequentes, reduzindo o tempo de resposta e a carga no servidor de origem. Agora, utiliza Redis como mecanismo de cache para maior eficiência e escalabilidade. Além disso, a aplicação conta com logs via SLF4J para melhor monitoramento.

🛠️ Tecnologias Utilizadas

My Skills

⚡ Funcionalidades

  • Encaminhamento de Requisições: Recebe requisições HTTP e as redireciona ao servidor de origem.
  • Armazenamento em Cache (Redis): Guarda respostas para otimizar requisições futuras.
  • Cabeçalhos de Cache:
    • X-Cache: HIT → Resposta servida do cache.
    • X-Cache: MISS → Resposta servida do servidor de origem.
  • Limpeza de Cache: Endpoint para limpar todas as respostas armazenadas.
  • Logs via SLF4J: Monitoramento de eventos da aplicação.

🚀 Como Executar

  1. Compile e execute o projeto com:
mvn clean package
java -jar target/proxy.jar --port <porta> --origin <url>

Onde:

  • --port → Porta onde o proxy será executado.
  • --origin → URL do servidor de origem para o qual as requisições serão encaminhadas.

Exemplo:

java -jar target/proxy.jar --port 3000 --origin http://dummyjson.com

Isso iniciará o servidor na porta 3000, encaminhando requisições para http://dummyjson.com.

🧹 Limpeza do Cache

Para limpar o cache, envie uma requisição para:

GET http://localhost:3000/clear-cache

About

Servidor proxy de cache em Java que intermedia requisições entre clientes e servidores de origem

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages