Kratos
go-kratos/kratosKratos — мощный Go-фреймворк для построения микросервисов. Поддерживает HTTP/gRPC, Protobuf, middleware (трейсинг, метрики), реестры сервисов, динамические конфигурации и автогенерацию Swagger. Подходит для крупных облачно-нативных приложений.
Подключение
git clone https://github.com/go-kratos/kratos.gitREADME
Перевод: 简体中文
О Kratos
Название вдохновлено игрой «God of War», основанной на греческой мифологии. Она рассказывает о приключениях Кратоса, который из смертного становится богом войны и устраивает кровавую расправу над богами.
Kratos — фреймворк для управления микросервисами, реализованный на Go. Он предоставляет удобные инструменты для быстрого построения надёжных приложений с нуля:
- Протокол взаимодействия основан на HTTP/gRPC с определением через Protobuf.
- Абстрактный транспортный уровень: HTTP / gRPC.
- Мощная система middleware: трейсинг (OpenTelemetry), метрики (Prometheus по умолчанию), восстановление после паник и другие.
- Интерфейс реестра сервисов, подключаемый к различным централизованным реестрам через плагины.
- Стандартные интерфейсы логирования упрощают интеграцию сторонних библиотек логов со сбором через Fluentd.
- Автоматический выбор кодировки содержимого по заголовкам
AcceptиContent-Type. - Поддержка нескольких источников данных для конфигураций и динамическое обновление конфигурации (с использованием атомарных операций).
- Единый способ передачи метаданных в протоколах HTTP/gRPC.
- Определение ошибок в proto-файлах и генерация перечислений через
protoc-gen-go. - Определение правил валидации в Protobuf для HTTP/gRPC-сервисов.
- Автоматическая генерация Swagger API и встроенный Swagger UI, запускаемый через плагин Swagger.
Kratos доступен, мощен и предоставляет все инструменты, необходимые для крупных и надёжных приложений.
Изучение Kratos
Kratos располагает обширной и подробной документацией и библиотекой примеров, что делает начало работы максимально простым.