В данном проекте была реализована серверная часть gRPC-сервиса. Сервис состоит из двух частей:
- Бизнес-логика. В данном проекте она ничего не делает и используется только ее вызов для модуля администрирования.
- Модуль администрирования, в котором осуществляется логирование и статистика вызываемых методов.
В серверной части сервиса реализованы:
- Система контроля доступа;
- Система логирования вызываемых методов;
- Система сбора статистики по вызываемым методам за указанный промежуток времени;
- Потоковая (streaming) передача логов и статистики нескольким подлючившимся клиентам одновременно.
Контроль доступа, сбор данных для логирования и статистики осуществляется в interceptor`ах.
В тестах /test/service_test/go проверяется:
- Запуск и остановка gRPC сервера;
- Отсутствие утечки горутин;
- Система контроля доступа;
- Работа логирования;
- Работа статистики.