
Visão geral
Castroom é um mecanismo de pesquisa de podcast. Foi feito principalmente para aprender a fazer um rastreador da web distribuído usando o Kubernetes. É capaz de reunir centenas de milhares de podcasts em poucas horas e pode ser facilmente escalado ainda mais com um comando simples.
Estrutura do projeto
Descoberta
Mestre
- coordena todos os trabalhos
crawler - Mantém um cache local (usando o LevelDB) para impedir que o mesmo URL seja rastejado várias vezes
- recebe dados dos nós
crawler e empurra para a fila - Os nós
crawler enviam todos os dados para este nó após rastejar um site - Envie os dados para o Elasticsearch na conclusão
- Gerenciado pelo Google Kubernetes Engine
Rastreador
- Crawls iTunes Podcast Pages e envia dados em lutas para o nó
master para cache - passa por um proxy para ignorar certas restrições
- Gerenciado pelo Google Kubernetes Engine
API
- Fornece pontos de extremidade para consultar o Elasticsearch e recuperar informações de feed de podcast
- Hospedado em Heroku
Web
- front -end para o mecanismo de busca
- gerenciado pela Firebase Hosting

Tecnologias usadas
- Docker
- Google Kubernetes Engine
- Amazon simples serviço de fila
- Amazon Elasticsearch Service
- Heroku
- Hospedagem de Firebase
- Reagir
- Node.js
- LevelDB
- Datadog
Capturas de tela


