Написать простой GRPC сервис с командами: get, set и delete. Хранилище должно быть спрятано за интерфейсом.
Реализуйте интерфейс обоими путями:
- Memcached сервер с самописной библиотекой и тремя этими же командами. Memcached protocol
- Хранилище внутри памяти приложения
Оформите в виде git-репозитория и покройте тестами.
Продвинутый уровень: реализуйте пулл коннектов к memcached.
Самописная библиотека для работы с Memcache находится в директории
libs/memcache
. Пулл коннектов в ней реализован. Хранилища находятся в директории
internal/cache
. Интерфейс к ним находится там, где они используются - то есть
в internal/api/grpc/cache_server.go
. Выбор типа используемого хранилища
осуществляется с помощью переменной в конфигурационном файле - storage
. Proto-файлы находятся
тут: internal/api/grpc/proto
.
- Скопировать файл
config.yml.dist
(это шаблон) вconfig.yml
- Запустить docker-compose:
sudo docker-compose up -d
- Запустить сервис:
make run
make run
- запуск сервисаmake test
- запуск тестовmake grpc_server
- генерация proto