
Descripción general
Castroom es un motor de búsqueda de podcast. Se hizo principalmente para aprender cómo hacer un rastreador web distribuido usando Kubernetes. Es capaz de reunir cientos de miles de podcasts en unas pocas horas, y se puede ampliar fácilmente con un comando simple.
Estructura de proyectos
Descubrimiento
Maestro
- Coordina todos los trabajos
crawler - Mantiene un caché local (usando LevelDB) para evitar que la misma URL se rastree varias veces
- recibe datos de los nodos
crawler y empuja a la cola - Los nodos
crawler envían todos los datos a este nodo después de rastrear un sitio web - Envíe los datos a ElasticSearch al finalizar
- Gestionado por Google Kubernetes Engine
Tractor
- Páginas de podcast iTunes de rastreo y envía datos por lotes al nodo
master para almacenar en caché - pasa por un proxy para evitar ciertas restricciones
- Gestionado por Google Kubernetes Engine
API
- Proporciona puntos finales para consultar Elasticsearch y recuperar información de alimentación de podcasts
- Organizado en Heroku
Web
- Frontend para el motor de búsqueda
- gestionado por Firebase Hosting

Tecnologías utilizadas
- Estibador
- Motor de Google Kubernetes
- Servicio de cola simple de Amazon
- Servicio de Amazon Elasticsearch
- Heroku
- Firebase Hosting
- Reaccionar
- Nodo.js
- Leveldb
- Datadog
Capturas de pantalla


