Patrón Ambassador
Definición de Patrón Ambassador
Crea servicios auxiliares que
envían solicitudes de red en
nombre de una aplicación o
servicio al consumidor. Un servicio
de embajador puede considerarse
como un proxy fuera de proceso
que se ubica junto con el cliente.
Las aplicaciones resistentes basadas en la nube
requieren características como interrupción de un
Contexto y circuito, enrutamiento, medición y supervisión, y
la posibilidad de aplicar actualizaciones de
Problema configuración relacionadas con la red.
Las llamadas de red también pueden requerir una
configuración considerable para la conexión, la
autenticación y la autorización. Si estas llamadas se usan en
varias aplicaciones, compiladas con varios lenguajes y
marcos de trabajo, deben configurarse para cada una de
estas instancias.
Cuando usar el patrón:
Necesita construir un conjunto común de características de conectividad del
cliente para múltiples idiomas o marcos.
Es necesario descargar las preocupaciones transversales de conectividad del
cliente a los desarrolladores de infraestructura u otros equipos más
especializados.
Debe admitir los requisitos de conectividad de la nube o el clúster en una
aplicación heredada o una aplicación que es difícil de modificar.
Cuando no es adecuado el patrón:
Cuando la latencia de solicitud de red es crítica. Un proxy introducirá algunos gastos
generales, aunque mínimos, y en algunos casos esto puede afectar la aplicación.
Cuando las características de conectividad del cliente son consumidas por un solo idioma.
En ese caso, una mejor opción podría ser una biblioteca de cliente que se distribuye a los
equipos de desarrollo como un paquete.
Cuando las características de conectividad no pueden generalizarse y requieren una
integración más profunda con la aplicación cliente.
Ejemplo El siguiente diagrama muestra una aplicación que realiza una solicitud a un
servicio remoto a través de un proxy de Ambassador. Ambassador proporciona el
enrutamiento, la interrupción del circuito y el registro. Llama al servicio remoto y
luego devuelve la respuesta a la aplicación cliente:
Gracias