Quiero crear una aplicación de microservicios , en la que cada microservicio es responsable de su propia parte del front-end. Al mismo tiempo, quiero crear el front end en AngularJS como una aplicación de página única (SPA). Cuando se despliega un nuevo microservicio, el front-end web recogerá automáticamente la nueva parte del front-end y la agregará al SPA. ¿Cuál sería la mejor manera de darse cuenta de esto?
Esto es lo que se me ocurrió. Cada microservicio podría ser responsable de su propio módulo angular. Luego, cuando el cliente navega a la aplicación, un componente del servidor (ASP.NET o JSP) puede ver qué microservicios están en línea y crear una página html que incluye los módulos angulares de esos microservicios.
Lo que el componente front-end también puede hacer es habilitar algunos microservicios para algunos clientes específicos que tienen privilegios extendidos, como administradores o clientes VIP.
Por supuesto, para que esto funcione, necesito una buena forma estructurada para que cada microservicio ocupe una parte de la pantalla, sin 'saber' qué otros microservicios hay en la pantalla. Una solución simple sería crear una pestaña para cada microservicio. En la pestaña, el microservicio a cargo puede poner su funcionalidad en la página. El componente frontal sería responsable de cosas generales como el enrutamiento (angular) y la apariencia.
¿Es esta la mejor manera de lograr este objetivo? ¿Alguien tiene experiencia con esto?
fuente
Respuestas:
Creo que tratar de manejar esto en el front-end es excesivo. Recomiendo que cree un back-end para su aplicación de una sola página, que sepa qué microservicios están disponibles o no (ya sea verificando las credenciales de usuario como mencionó, o si el servicio está fuera de servicio por mantenimiento, etc.), y eso organizará todo . Llamaría a esto la capa de aplicación , que pega todo junto, y actúa como una fachada para acceder a sus diferentes microservicios.
Su SPA no necesita saber que obtiene sus datos de microservicios. Definitivamente, debe solicitar los datos desde un único punto de entrada, que envía las consultas a los servicios apropiados.
fuente