Sobre el proyecto
Apache Dubbo-go es la implementación en Go de Apache Dubbo, un framework RPC y de microservicios de alto rendimiento diseñado para interoperar con implementaciones de Dubbo en otros lenguajes. Utiliza las características de concurrencia de Go para soportar gobernanza de servicios como descubrimiento de servicios, balanceo de carga y gestión de tráfico.
El soporte de protocolos incluye Dubbo, JSONRPC, Triple (compatible con gRPC), gRPC, HTTP, HTTP2 y HTTP/3 experimental, lo que facilita la integración en entornos heterogéneos. Las integraciones de descubrimiento de servicios listadas incluyen Nacos, Zookeeper, Etcd y Polaris-mesh. Las estrategias de balanceo de carga incluyen Adaptive, Random, RoundRobin, LeastActive y ConsistentHash. La gestión de tráfico cubre división de tráfico, tiempo de espera, limitación de velocidad y lanzamiento canario. La configuración puede provenir de archivos YAML o de fuentes dinámicas como Nacos, Apollo y Zookeeper. Las opciones de observabilidad incluyen métricas de Prometheus, trazado de OpenTelemetry y registro con eventos del ciclo de vida del registro de servicios. Las estrategias de alta disponibilidad incluyen Failover, Failfast, Failsafe/Failback, Available, Broadcast y Forking.
El README destaca la interoperabilidad con Apache Dubbo (Java) mediante llamadas genéricas del protocolo Triple, coincidencia de comodines de grupo/versión y un rediseño de la API TLS. Las versiones recientes se centran en la consolidación de la API, capacidades del protocolo Triple, metadatos a nivel de aplicación, gobernanza de servicios, seguridad de concurrencia y herramientas de lanzamiento. La versión 3.3.2 elimina el paquete de configuración heredado en favor del paquete global, y señala correcciones para condiciones de carrera, instantáneas obsoletas y fugas de recursos. La versión 3.3.1 añadió recarga en caliente de configuración con almacenamiento en caché basado en contenido, HTTP/3 experimental, integración con Apollo y generación de OpenAPI para Triple. La versión 3.3.0 introdujo enrutamiento por scripts, enrutamiento condicional multidestino, keepalive y agrupación de conexiones de Triple, y suscripciones multicategoría de Nacos.
Para comenzar se requiere Go 1.24 o posterior. La instalación se realiza mediante `go get dubbo.apache.org/dubbo-go/v3@latest`. Un ejemplo rápido muestra cómo definir un servicio con Protobuf, implementarlo, registrarlo en un servidor con el protocolo Triple en un puerto y servirlo. Luego, el servicio puede ser llamado con cURL usando JSON sobre HTTP, o mediante un cliente estándar de dubbo-go. Hay ejemplos disponibles en el repositorio dubbo-go-samples.
Las herramientas de desarrollo se encuentran en el directorio `tools/`: dubbogo-cli para andamiaje, instalación de herramientas complementarias, inspección de metadatos y depuración; protoc-gen-go-triple para generar enlaces Triple a partir de definiciones protobuf; protoc-gen-triple-openapi para generar documentos OpenAPI v3; imports-formatter para agrupación de importaciones de Go; dubbo-go-schema para validación de configuración YAML; y un conjunto de benchmarks que compara Dubbo-Go, Dubbo-Java y gRPC.
El ecosistema incluye dubbo-go-samples, dubbo-go-pixiu como proxy para interoperabilidad multilingüe, tutoriales de interoperabilidad con Dubbo Java y la consola Dubbo Admin. La documentación está disponible en el sitio web oficial de Dubbo y en la sección del SDK de Go. El proyecto está licenciado bajo Apache License 2.0 y acepta contribuciones a través de issues de GitHub y listas de correo.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.