Об этом проекте
Apache Dubbo-go — это реализация Apache Dubbo на языке Go, высокопроизводительный RPC- и микросервисный фреймворк, предназначенный для взаимодействия с реализациями Dubbo на других языках. Он использует возможности конкурентности Go для поддержки управления сервисами, таких как обнаружение сервисов, балансировка нагрузки и управление трафиком.
Поддержка протоколов включает Dubbo, JSONRPC, Triple (совместимый с gRPC), gRPC, HTTP, HTTP2 и экспериментальный HTTP/3, что помогает интеграции в гетерогенных средах. Среди перечисленных интеграций для обнаружения сервисов — Nacos, Zookeeper, Etcd и Polaris-mesh. Стратегии балансировки нагрузки включают Adaptive, Random, RoundRobin, LeastActive и ConsistentHash. Управление трафиком охватывает разделение трафика, тайм-ауты, ограничение скорости и канареечный релиз. Конфигурация может поступать из YAML-файлов или динамических источников, таких как Nacos, Apollo и Zookeeper. Возможности наблюдаемости включают метрики Prometheus, трассировку OpenTelemetry и логирование с событиями жизненного цикла регистрации сервисов. Стратегии высокой доступности включают Failover, Failfast, Failsafe/Failback, Available, Broadcast и Forking.
В README подчёркивается совместимость с Apache Dubbo (Java) через универсальные вызовы протокола Triple, сопоставление с подстановочными знаками для group/version и переработанный TLS API. Последние релизы сосредоточены на консолидации API, возможностях протокола Triple, метаданных уровня приложения, управлении сервисами, безопасности конкурентности и инструментах релиза. Версия 3.3.2 удаляет устаревший пакет config в пользу глобального пакета и отмечает исправления гонок, устаревших снимков и утечек ресурсов. Версия 3.3.1 добавила горячую перезагрузку конфигурации с кэшированием на основе содержимого, экспериментальный HTTP/3, интеграцию с Apollo и генерацию Triple OpenAPI. Версия 3.3.0 представила скриптовую маршрутизацию, условную маршрутизацию с несколькими назначениями, keepalive и пул соединений Triple, а также многокатегорийные подписки Nacos.
Для начала работы требуется Go 1.24 или более поздняя версия. Установка выполняется через `go get dubbo.apache.org/dubbo-go/v3@latest`. Краткий пример показывает определение сервиса с помощью Protobuf, его реализацию, регистрацию на сервере с протоколом Triple на порту и запуск обслуживания. Затем сервис можно вызвать с помощью cURL, используя JSON поверх HTTP, или через стандартный клиент dubbo-go. Примеры доступны в репозитории dubbo-go-samples.
Инструменты разработки находятся в каталоге `tools/`: dubbogo-cli для создания каркаса, установки сопутствующих инструментов, просмотра метаданных и отладки; protoc-gen-go-triple для генерации привязок Triple из определений protobuf; protoc-gen-triple-openapi для генерации документов OpenAPI v3; imports-formatter для группировки импортов Go; dubbo-go-schema для валидации YAML-конфигурации; и набор бенчмарков, сравнивающий Dubbo-Go, Dubbo-Java и gRPC.
Экосистема включает dubbo-go-samples, dubbo-go-pixiu как прокси для многоязыковой совместимости, руководства по совместимости с Dubbo Java и консоль Dubbo Admin. Документация доступна на официальном сайте Dubbo и в разделе Go SDK. Проект лицензирован под Apache License 2.0 и приветствует вклад через GitHub issues и списки рассылки.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.