Данный проект представляет собой gRPC API для хранения и получения информации о фильмах таких как название, имя режиссера, рейтинг и других.
В проекте используются Go, gRPC, mySQL, docker, kubernetes, hashicorp consul.
Данный проект фокусируется больше на инфрастуктуре и архитектуре микросервисов, нежели на непосредственной логике работы сервисом.
В проекте представлены 3 микросервиса metadata, rating и movie, запущенные в docker compose на портах 8081, 8082 и 8083 соответсвенно.
Микросервис metadata хранит мета-информацию о фильме такую как название, имя режиссера, слоган и id фильма.
Микросервис rating хранит и аггрегирует информацию об оценках фильмов пользователями.
Микросервис movie выступает в качетсве gateway сервиса для двух других и выдает мета-информацию фильма и его средний рейтинг.
Для запуска проекта вам понадобится docker и task установленные на вашем компютере.
Для запуска приложения введите команду в корневой папке проекта:
task compose-up
Для остановки и удаления контейнеров введите:
task compose-down
Для удаления бинарных файлов созданных вовремя запуска проекта введите:
task clean
Для запуска интеграционных тестов введите:
go run ./test/integration/*.go
Для ручного тестирование проекта используйте Postman gRPC server reflect или grpcurl. Сниппеты с grpcurl примерами будут добавлены позднее.