High-speed Service Framework (HSF) es un framework distribuido de llamada a procedimiento remoto (RPC) que se usa ampliamente en Alibaba Group. HSF desacopla las aplicaciones distribuidas mediante un modelo unificado de publicación e invocación de servicios. Este framework gestiona la comunicación remota, la serialización, la pérdida de rendimiento y las invocaciones síncronas y asíncronas. De esta manera, el código de la aplicación se mantiene enfocado en la lógica de negocio.
Dubbo 3.0 integra Dubbo de código abierto y HSF. Para actualizar una aplicación HSF existente, consulte Actualizar una aplicación HSF a una aplicación Dubbo 3.0. La actualización se realiza desde la consola de Enterprise Distributed Application Service (EDAS). Una vez actualizada, puede desarrollar la aplicación con el método original o con la función de gobernanza de microservicios que EDAS proporciona para las aplicaciones Dubbo.
Arquitectura
HSF se ejecuta por completo en el lado del cliente, ya que ningún clúster central procesa las solicitudes. Todas las llamadas a los servicios son punto a punto entre proveedores y consumidores. HSF depende de varios sistemas externos para el descubrimiento de servicios, la gobernanza y la visibilidad operativa.
Plano de datos
El plano de datos está formado por los proveedores y consumidores de servicios que intercambian datos directamente mediante llamadas RPC.
|
Componente |
Función |
|
Proveedor de servicios |
Escucha en el puerto 12200, procesa las solicitudes entrantes y publica su dirección en el registro de direcciones. |
|
Consumidor de servicios |
Se suscribe a las direcciones de los servicios mediante el registro e inicia llamadas punto a punto con base en la información de direcciones obtenida. El registro de direcciones no interviene en las llamadas. |
Plano de control
El plano de control gestiona el descubrimiento de servicios, la configuración y la visibilidad operativa.
|
Componente |
Función |
Obligatorio |
|
Registro de direcciones |
Almacena las direcciones de los proveedores para el registro y el descubrimiento de servicios. Sin este componente, solo es posible hacer llamadas punto a punto directas. |
Sí |
|
Centro de configuración persistente |
Almacena reglas de gobernanza, como las de enrutamiento, agrupación y ponderación. Los consumidores se suscriben a estas reglas al iniciar para determinar la lógica de selección de direcciones. |
No se especifica explícitamente |
|
Centro de almacenamiento de metadatos |
Guarda los metadatos de los servicios, como las firmas de métodos y las estructuras de parámetros. No afecta las llamadas a los servicios. Cuando HSF inicia, el consumidor reporta los metadatos al centro de almacenamiento para facilitar las tareas de operación y mantenimiento. |
No |
|
Consola de EDAS |
Conecta el registro, el centro de configuración y el centro de almacenamiento de metadatos. Ofrece consultas de servicios, gestión de reglas de gobernanza y otras funciones operativas. |
No |
Métodos de llamada compatibles
HSF admite los siguientes métodos de llamada:
|
Método |
Descripción |
|
Síncrono |
Es el método predeterminado. El consumidor se bloquea hasta que el proveedor devuelve un resultado. |
|
Asíncrono (Future) |
El consumidor continúa la ejecución y recupera los resultados más tarde mediante |
|
Asíncrono (Callback) |
El consumidor registra un controlador |
|
Genérico |
El consumidor llama a los servicios sin importar las interfaces API del proveedor. Resulta útil para crear integraciones ligeras de plataforma que no dependan de los SDK del proveedor. |
Extensión del filtro de trazas
HSF incluye un mecanismo integrado de filtros de llamadas. Implemente puntos de extensión de filtros personalizados que se integren en la traza de llamadas de HSF. Estas extensiones procesan las solicitudes de HSF.
Desarrollo de aplicaciones
HSF admite dos modelos de desarrollo y despliegue:
|
Modelo |
Dependencia de tiempo de ejecución |
Funciones compatibles |
Formato de despliegue |
|
Ali-Tomcat |
Ali-Tomcat + Pandora |
Registro y descubrimiento de servicios, paso implícito de parámetros, llamadas asíncronas, llamadas genéricas, extensión del filtro de trazas |
Paquete WAR |
|
Pandora Boot |
Pandora |
Registro de servicios, descubrimiento de servicios, llamadas asíncronas |
Paquete JAR ejecutable |