Este tema describe la documentación de usuario de Apache Dubbo para su referencia.
Primeros pasos
Configure su entorno y ponga en marcha una aplicación Dubbo.
|
Topic |
Description |
|
Contexto |
Conceptos fundamentales de Apache Dubbo y su función en sistemas distribuidos |
|
Requisitos previos |
Prerrequisitos de software y entorno |
|
Arquitectura 2.6.1 |
Disposición de componentes y modelo de interacción para Dubbo 2.6.1 |
|
Arquitectura 2.7.1 |
Arquitectura actualizada y nuevas capacidades en Dubbo 2.7.1 |
|
Uso |
Patrones básicos para compilar y ejecutar servicios Dubbo |
|
Inicio rápido |
Guía paso a paso para comenzar con su primera aplicación Dubbo |
|
Dependencias |
Bibliotecas y dependencias obligatorias |
|
Madurez |
Niveles de estabilidad de funciones e indicadores de preparación para producción |
Configuración
Configure los servicios Dubbo mediante XML, archivos de propiedades, anotaciones o la API.
|
Topic |
Description |
|
Configuración XML |
Defina servicios, referencias y registros en archivos XML |
|
Configuración de propiedades |
Utilice archivos |
|
Configuración de API |
Configure Dubbo mediante programación con código Java |
|
Configuración por anotaciones |
Use anotaciones de Java para declarar servicios y referencias |
|
Centro de configuración dinámica |
Aplique cambios de configuración en tiempo de ejecución |
|
Proceso de carga de configuración |
Cómo resuelve y combina Dubbo la configuración de múltiples fuentes |
|
Carga automática de variables de entorno |
Asigne variables de entorno a las propiedades de configuración de Dubbo |
Ejemplos
Ejemplos funcionales de las funciones comunes de Dubbo, organizados por categoría.
Registro y descubrimiento de servicios
|
Topic |
Description |
|
Verificación previa |
Compruebe la disponibilidad del proveedor antes de que se inicie el consumidor |
|
Destino explícito |
Conéctese directamente a un proveedor específico, sin pasar por el registro |
|
Solo suscripción |
Descubra proveedores mediante el registro sin registrar el servicio local |
|
Solo registro |
Registre el servicio local en el registro sin suscribirse a otros proveedores |
|
Servicio estático |
Registre servicios con una dirección fija que no cambia dinámicamente |
|
Múltiples registros |
Enrute servicios a través de más de un servidor de registro |
Balanceo de carga y tolerancia a fallos
|
Topic |
Description |
|
Balanceo de carga |
Configure estrategias de balanceo de carga para las invocaciones de servicio |
|
Estrategia de tolerancia a fallos |
Gestione los errores con políticas de tolerancia a fallos configurables |
|
Degradación de servicio |
Devuelva resultados alternativos cuando un proveedor no esté disponible o sea lento |
|
Regla de enrutamiento |
Dirija el tráfico a proveedores específicos según condiciones determinadas |
|
Configurar reglas |
Aplique reglas de gobernanza dinámicamente en tiempo de ejecución |
Modelo de servicio y versionado
|
Topic |
Description |
|
Grupo de servicios |
Aísle diferentes implementaciones de la misma interfaz por grupo |
|
Múltiples versiones |
Ejecute varias versiones de un servicio simultáneamente para un despliegue seguro |
|
Múltiples protocolos |
Exponga el mismo servicio a través de más de un protocolo al mismo tiempo |
|
Fusión de grupos |
Agregue resultados de proveedores en distintos grupos de servicios |
Patrones de invocación
|
Topic |
Description |
|
Llamada asíncrona |
Invoque servicios remotos sin bloquear el hilo llamador |
|
Ejecución asíncrona |
Ejecute la lógica del lado del proveedor de forma asíncrona para mejorar el rendimiento |
|
Llamada local |
Invoque un servicio dentro de la misma JVM, evitando la sobrecarga de red |
|
Parámetro de callback |
Reciba resultados asíncronos a través de una interfaz de callback |
|
Notificación de eventos |
Active eventos tras el éxito, fallo o finalización de una invocación |
|
Referencia genérica |
Llame a cualquier servicio sin dependencia en tiempo de compilación respecto a su interfaz |
|
Servicio genérico |
Implemente un proveedor que gestione interfaces de servicio arbitrarias |
|
Servicio echo |
Pruebe la disponibilidad del servicio con una solicitud echo ligera |
|
Contexto |
Pase y recupere metadatos con alcance de solicitud durante las invocaciones |
|
Parámetros implícitos |
Adjunte pares clave-valor ocultos a las llamadas RPC sin modificar la firma de la interfaz |
Control de tráfico y gestión de conexiones
|
Topic |
Description |
|
Control de concurrencia |
Limite el número de solicitudes simultáneas que gestiona un proveedor o consumidor |
|
Configurar conexiones |
Establezca el tamaño del pool de conexiones, el tiempo de espera y los parámetros de keep-alive |
|
Conexión diferida |
Retrase la creación de la conexión TCP hasta que se envíe la primera solicitud |
|
Conexión persistente |
Vincule un consumidor al mismo proveedor para casos de uso con afinidad de sesión |
|
Autorización por token |
Exija un token para evitar el acceso directo no autorizado a los proveedores |
|
Modelo de hilos |
Personalice el pool de hilos de Netty y la estrategia de despacho |
Funciones avanzadas
|
Topic |
Description |
|
Stub local |
Ejecute lógica de preprocesamiento o posprocesamiento en el lado del consumidor antes o después de una llamada remota |
|
Mock local |
Devuelva datos simulados cuando el proveedor no esté disponible; útil para pruebas y degradación |
|
Publicación diferida |
Retrase el registro del servicio hasta que la aplicación se haya inicializado por completo |
|
Validación de parámetros |
Valide los parámetros del método antes de ejecutar la llamada |
|
Caché de resultados |
Almacene en caché los resultados de invocación para reducir llamadas remotas repetidas |
|
Caché de ReferenceConfig |
Reutilice instancias de |
|
Transacción distribuida |
Coordine transacciones entre múltiples servicios |
|
Volcado de hilos automático |
Active un volcado de hilos automáticamente cuando Dubbo detecte un problema |
|
Apagado graceful |
Drene las solicitudes en curso y cancele el registro del proveedor antes de que la JVM se cierre |
Registros, redes y serialización
|
Topic |
Description |
|
Vinculación de nombre de host |
Controle a qué interfaz de red y nombre de host se vincula Dubbo |
|
Estrategia de logger |
Alterne entre los frameworks de registro Log4j, SLF4J, JCL y JDK |
|
Registro de acceso |
Registre cada invocación entrante para auditoría y depuración |
|
Contenedor de servicios |
Ejecute servicios Dubbo de forma independiente sin un contenedor web |
|
Netty4 |
Habilite el transporte Netty 4 para mejorar el rendimiento |
|
Uso de serialización Java eficiente en Dubbo (Kryo y FST) |
Reemplace el serializador predeterminado con Kryo o FST para una serialización más rápida |
|
Simplificar URL de registro |
Reduzca la longitud de la URL de registro eliminando parámetros redundantes |
Referencia de API
Documentación de la API de Java para clases e interfaces de Dubbo.
Referencia de configuración XML
Descripciones detalladas de atributos y uso para cada etiqueta XML de Dubbo.
|
Tag |
Description |
|
Introducción |
Atributos comunes y convenciones compartidas entre las etiquetas XML de Dubbo |
|
|
Exponga una clase Java local como un servicio Dubbo remoto |
|
|
Cree un proxy para consumir un servicio Dubbo remoto |
|
|
Configure el protocolo de comunicación (puerto, serialización, pool de hilos) |
|
|
Conéctese a un servidor de registro para el descubrimiento de servicios |
|
|
Habilite la recopilación y reporte de métricas de invocación |
|
|
Establezca propiedades a nivel de aplicación, como nombre y propietario |
|
|
Agrupe servicios relacionados en un módulo lógico |
|
|
Establezca valores predeterminados para todas las etiquetas |
|
|
Establezca valores predeterminados para todas las etiquetas |
|
|
Sobrescriba la configuración de un método específico dentro de un servicio o referencia |
|
|
Configure reglas de serialización o validación para un argumento de método específico |
|
|
Pase pares clave-valor arbitrarios como parámetros de extensión |
|
|
Conéctese a un centro de configuración externo para una gestión centralizada |
Referencias de protocolos
Protocolos de comunicación compatibles, cada uno con detalles de conexión, casos de uso y restricciones.
|
Protocol |
Description |
|
Introducción |
Guía de selección y comparación de protocolos |
|
|
Protocolo binario de alto rendimiento predeterminado, adecuado para escenarios de alto rendimiento y baja latencia |
|
|
Protocolo Java RMI para integración con servicios RMI heredados |
|
|
Protocolo binario Hessian con transporte HTTP integrado, útil para llamadas entre lenguajes |
|
|
Protocolo HTTP estándar para invocaciones sencillas estilo RESTful |
|
|
Protocolo de Web Services basado en SOAP para integración de sistemas empresariales |
|
|
Protocolo Apache Thrift para RPC entre lenguajes |
|
|
Acceda a servidores Memcached a través de la interfaz de servicio Dubbo |
|
|
Acceda a servidores Redis a través de la interfaz de servicio Dubbo |
|
|
Protocolo RESTful para invocaciones de servicio basadas en HTTP |
Referencias de servidores de registro
Opciones de registro para el descubrimiento de servicios, cada una con instrucciones de configuración y consideraciones.
|
Registry |
Description |
|
Introducción |
Guía de selección y comparación de registros |
|
Registro Multicast |
Registro sin dependencias para desarrollo y pruebas en una red local |
|
Servidor de registro ZooKeeper |
Registro de grado de producción respaldado por Apache ZooKeeper |
|
Centro de registro Nacos |
Registro y centro de configuración respaldado por Alibaba Nacos |
|
Servidor de registro Redis |
Implementación de registro que utiliza pub/sub de Redis para notificaciones de servicio |
|
Servidor de registro simple |
Registro ligero para pruebas, implementado como un servicio Dubbo estándar |
Referencia de metadatos
Gestión de metadatos de servicio: cómo gestiona Dubbo los metadatos de interfaz entre proveedores y consumidores.
Referencia de comandos Telnet
Utilice la interfaz Telnet integrada para inspeccionar servicios en ejecución, invocar métodos y solucionar problemas desde la línea de comandos.
Uso de comandos QoS
El puerto de comandos de Calidad de Servicio (QoS) proporciona comprobaciones de estado, apagado graceful y diagnósticos en tiempo de ejecución.
Referencia del plugin de Maven
Plugin de Maven para aplicaciones Dubbo.
Mejores prácticas
|
Topic |
Description |
|
Uso recomendado |
Enfoques preferidos para escenarios de configuración comunes |
|
Planificación de capacidad |
Estime el hardware y el tamaño del clúster según el tráfico esperado |
|
Informe de rendimiento |
Datos de benchmark y directrices de ajuste para optimizar el rendimiento y la latencia de Dubbo |
|
Informe de cobertura de pruebas |
Métricas de cobertura de código y estrategias de prueba para servicios Dubbo |
Actualización de versión
|
Topic |
Description |
|
Procedimientos y notas de actualización a 2.7.x |
Cambios disruptivos, pasos de migración y notas de compatibilidad para actualizar a Dubbo 2.7.x |
Erlang
Apache Dubbo proporciona un cliente Erlang. Los siguientes temas cubren la configuración y el ajuste para consumidores y proveedores basados en Erlang.
|
Topic |
Description |
|
Inicio rápido |
Configure un proyecto Dubbo en Erlang y ejecute un ejemplo básico de consumidor-proveedor |
|
Configuración del consumidor |
Configure referencias de servicio, tiempos de espera y balanceo de carga para consumidores Erlang |
|
Configuración del proveedor |
Registre y exponga servicios Erlang en el ecosistema Dubbo |
|
Configuración de serialización |
Elija y configure un formato de serialización para la comunicación Dubbo en Erlang |