À propos du projet
Apache Dubbo-go est l'implémentation Go d'Apache Dubbo, un framework RPC et microservices haute performance conçu pour interopérer avec les implémentations Dubbo dans d'autres langages. Il utilise les fonctionnalités de concurrence de Go pour prendre en charge la gouvernance des services telle que la découverte de services, l'équilibrage de charge et la gestion du trafic.
La prise en charge des protocoles inclut Dubbo, JSONRPC, Triple (compatible gRPC), gRPC, HTTP, HTTP2 et HTTP/3 expérimental, ce qui facilite l'intégration dans des environnements hétérogènes. Les intégrations de découverte de services listées incluent Nacos, Zookeeper, Etcd et Polaris-mesh. Les stratégies d'équilibrage de charge incluent Adaptive, Random, RoundRobin, LeastActive et ConsistentHash. La gestion du trafic couvre la répartition du trafic, les délais d'attente, la limitation de débit et le déploiement canari. La configuration peut provenir de fichiers YAML ou de sources dynamiques telles que Nacos, Apollo et Zookeeper. Les options d'observabilité incluent les métriques Prometheus, le traçage OpenTelemetry et la journalisation avec les événements du cycle de vie de l'enregistrement des services. Les stratégies de haute disponibilité incluent Failover, Failfast, Failsafe/Failback, Available, Broadcast et Forking.
Le README met en avant l'interopérabilité avec Apache Dubbo (Java) via les appels génériques du protocole Triple, la correspondance par caractères génériques de groupe/version et une refonte de l'API TLS. Les versions récentes se concentrent sur la consolidation de l'API, les capacités du protocole Triple, les métadonnées au niveau de l'application, la gouvernance des services, la sécurité de concurrence et l'outillage de publication. La version 3.3.2 supprime le package de configuration hérité au profit du package global, et note des correctifs pour les races, les instantanés obsolètes et les fuites de ressources. La version 3.3.1 a ajouté le rechargement à chaud de la configuration avec mise en cache basée sur le contenu, HTTP/3 expérimental, l'intégration Apollo et la génération d'OpenAPI Triple. La version 3.3.0 a introduit le routage par script, le routage conditionnel multi-destination, le keepalive et le pool de connexions Triple, ainsi que les abonnements multi-catégories Nacos.
Pour démarrer, Go 1.24 ou une version ultérieure est requis. L'installation se fait via `go get dubbo.apache.org/dubbo-go/v3@latest`. Un exemple rapide montre la définition d'un service avec Protobuf, son implémentation, son enregistrement auprès d'un serveur avec le protocole Triple sur un port, et son service. Le service peut ensuite être appelé avec cURL en utilisant JSON sur HTTP, ou via un client dubbo-go standard. Des exemples sont disponibles dans le dépôt dubbo-go-samples.
Les outils de développement se trouvent dans le répertoire `tools/` : dubbogo-cli pour l'échafaudage, l'installation d'outils complémentaires, l'inspection des métadonnées et le débogage ; protoc-gen-go-triple pour générer les liaisons Triple à partir des définitions protobuf ; protoc-gen-triple-openapi pour générer des documents OpenAPI v3 ; imports-formatter pour le regroupement des imports Go ; dubbo-go-schema pour la validation de la configuration YAML ; et une suite de benchmarks comparant Dubbo-Go, Dubbo-Java et gRPC.
L'écosystème comprend dubbo-go-samples, dubbo-go-pixiu comme proxy pour l'interopérabilité multi-langages, des tutoriels d'interopérabilité avec Dubbo Java et la console Dubbo Admin. La documentation est disponible sur le site officiel de Dubbo et dans la section Go SDK. Le projet est sous licence Apache License 2.0 et accueille les contributions via les issues GitHub et les listes de diffusion.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.