Múltiples Aplicaciones, Una Base de Datos
Es probable que deba implementar múltiples IPF applications que todos utilizan el mismo MongoDB base de datos. Esto significa
que todas las aplicaciones tendrán el mismo serviceName a pesar de que no se supone que deban estar en un
agrúpese. Esto resultará en la formación de un mega-clúster, lo cual probablemente no sea lo que usted desea.
Para distinguir entre tipos de IPF applications que debe unir un clúster, utilice el service-name
propiedad de configuración.
El problema
IPF utiliza la misma plataforma base para todas las aplicaciones en tiempo de ejecución, las cuales se inicializan de la misma manera:
-
Mismo
ActorSystemnombradoipf-flow -
Misma Primavera
ApplicationContext -
La misma jerarquía de anulación de configuración
Cuando se ejecutan múltiples aplicaciones en el mismo entorno, todas utilizando Akka Cluster Bootstrap con MongoDB como el servicio
mecanismo de descubrimiento, todos terminarán formando un mega-clúster porque no tienen service name, y por lo tanto
utilizará el nombre de servicio predeterminado, que es el ActorSystem’s name, which in this case will be `ipf-flow universalmente:
En la imagen anterior, todos los nodos de todas las aplicaciones se han unido al mismo mega-clúster, lo cual no es el comportamiento deseado. Lo que debemos quiere que cada aplicación cree su propio clúster sin esta interferencia.
Un nombre de servicio es Akka Cluster La forma en que Bootstrap resuelve este problema, donde hay múltiples nodos que pertenecen a diferentes clústeres y, sin embargo, compartiendo el mismo backend de descubrimiento.
Para especificar un nombre de servicio, establezca esta configuración con el mismo valor en todos los nodos de un tipo específico. La configuración
clave es akka.management.cluster.bootstrap.contact-point-discovery.service-name.
Así que en todos los nodos de la Aplicación 1 podríamos especificar:
akka.management.cluster.bootstrap.contact-point-discovery.service-name = app-1
Y en la Aplicación 2 especificamos:
akka.management.cluster.bootstrap.contact-point-discovery.service-name = app-2
Lo que resultará en esta topología:
Verifique esto accediendo a la Akka Cluster de Gestión HTTP Gestión de /cluster/members URL para observar el correcto
configuración de los clústeres.