Configure el arranque del clúster con MongoDB descubrimiento

Esta guía le ayudará a utilizar MongoDB como un mecanismo de descubrimiento para iniciar un Akka cluster

Paso 0: Agregue la dependencia

Deberá añadir esto a pom.xml:

<dependency>
    <groupId>com.iconsolutions.ipf.core.discovery</groupId>
    <artifactId>akka-discovery-mongodb-plugin</artifactId>
</dependency>

Para encontrar la versión más reciente, puede utilizar esta consulta de Nexus.

Paso 1: Habilite Akka Cluster Inicie y utilice MongoDB

Agregue este fragmento a su configuración (application.conf):

akka {
  extensions = ["akka.management.cluster.bootstrap. ClusterBootstrap"]
  discovery {
    method = akka-mongodb
    akka-mongodb.uri = ${ipf.mongodb.url} # or use an actual MongoDB URI if not using this with IPF
  }
  management.cluster.bootstrap {
    contact-point.filter-on-fallback-port=false
  }
}

Paso 2: Verifique

Al iniciar su aplicación, debe verificar que se hayan creado los índices y que el servicio se registre a sí mismo.

Busque estas líneas en el registro:

[INFO] [04/26/2023 20:43:55. 668] Ensured indexes on Akka Discovery MongoDB ([akka-discovery-mongodb-1])
[INFO] [04/26/2023 20:43:55. 663] Registered self with service name 8cc4d63b-09c8-4fca-9668-b11e6d00e75a and host:port 127. 0. 1. 1:8558: AcknowledgedUpdateResult{matchedCount=0, modifiedCount=0, upsertedId=BsonObjectId{value=64497efb0b510545dbb89377}}

Tenga en cuenta que ambas funcionalidades pueden ser desactivadas. Vea a continuación.

Ahora también debe poder navegar a la Akka Gestión HTTP servicio (siendo el predeterminado 127. 0. 1. 1:8558) y observe que todos los nodos del mismo tipo y que están utilizando el mismo método de descubrimiento deben estar en un clúster juntos.

Apéndice A: Configuración Predeterminada

La tabla a continuación describe la configuración predeterminada que se incluye con la biblioteca:

Clave de configuración Descripción Valor predeterminado

akka.discovery.akka-mongodb.enabled

Are Akka¿Se permiten nodos para formar un clúster?

true

akka.discovery.akka-mongodb.uri

El MongoDB URI que debe utilizar para conectarse a la base de datos.

Establezca el valor de este campo si no está utilizando el complemento desde dentro de IPF o si no tiene la intención de utilizar la misma base de datos que IPF.

Honra el global ipf.mongodb.url propiedad.

ipf.mongodb.url si se utiliza dentro de IPF,mongodb://localhost:27017/ipf de lo contrario

akka.discovery.akka-mongodb.collection

El nombre de la colección para almacenar los datos de descubrimiento.

akka-discovery-mongodb

akka.discovery.akka-mongodb.collection-settings

El nombre de la colección para almacenar configuraciones de descubrimiento que pueden cambiar dinámicamente.

akka-discovery-mongodb-settings

akka.discovery.akka-mongodb.register-self

¿Debe este nodo registrarse en la base de datos?

true

akka.discovery.akka-mongodb.create-indexes

Debería akka-discovery-mongodb¿Crear índices para sí mismo?

Desactive esto si al usuario de la base de datos no se le concede el createIndex acción.

Honra el IPF global ipf.mongodb.create-indexes anular.

ipf.mongodb.create-indexes si está establecido,true de lo contrario

akka.discovery.akka-mongodb.commit-quorum

El quórum de compromiso para utilizar al crear el índice para Akka Descubrimiento MongoDB.

Honra el IPF global ipf.mongodb.commit-quorum anular.

ipf.mongodb.commit-quorum si está establecido,votingMembers de lo contrario

akka.discovery.akka-mongodb.updater.enabled

Debería el Actualizador¿Ejecutar?

true

akka.discovery.akka-mongodb.updater.initial-delay

Retraso inicial antes de que el Actualizador comience a actualizar la entrada de su lastUpdated valor

30 segundos

akka.discovery.akka-mongodb.updater.initial-delay

Con qué frecuencia debe actualizar el lastUpdated valor

30 segundos

akka.discovery.akka-mongodb.updater.expire-entries-older-than

El expireAfter valor de la MongoDB Índice TTL que se crea

30 minutos

akka.discovery.akka-mongodb.set-ssl-context

Si debe habilitar el soporte SSL.

Estableciendo esto a true requerirá configurar algunos de los ssl-context ajustes a continuación.

Honra el global ipf.mongodb.set-ssl-context anular.

ipf.mongodb.set-ssl-context si se establece

akka.discovery.akka-mongodb.ssl-context.key-store-type

Tipo de la tienda de claves.

Honra el global ipf.mongodb.ssl-context.key-store-type anular.

ipf.mongodb.ssl-context.key-store-type si se establece

akka.discovery.akka-mongodb.ssl-context.key-store-location

Ruta al almacén de claves que contiene el certificado SSL (típicamente un archivo jks).

Honra el global ipf.mongodb.ssl-context.key-store-location anular.

ipf.mongodb.ssl-context.key-store-location si se establece

akka.discovery.akka-mongodb.ssl-context.key-store-password

Contraseña utilizada para acceder al almacén de claves.

Honra lo global ipf.mongodb.ssl-context.key-store-password anular.

ipf.mongodb.ssl-context.key-store-password si se establece

akka.discovery.akka-mongodb.ssl-context.key-password

Contraseña utilizada para acceder a la clave en el almacén de claves.

Honra el global ipf.mongodb.ssl-context.key-password anular.

ipf.mongodb.ssl-context.key-password si se establece

akka.discovery.akka-mongodb.ssl-context.trust-store-type

Tipo de la tienda de confianza.

Honra el global ipf.mongodb.ssl-context.trust-store-type anular.

ipf.mongodb.ssl-context.trust-store-type si se establece

akka.discovery.akka-mongodb.ssl-context.trust-store-location

Ruta al almacén de confianza que contiene el certificado SSL.

Honra lo global ipf.mongodb.ssl-context.trust-store-location anular.

ipf.mongodb.ssl-context.trust-store-location si se establece

akka.discovery.akka-mongodb.ssl-context.trust-store-password

Contraseña utilizada para acceder al almacén de confianza.

Honra el global ipf.mongodb.ssl-context.trust-store-password anular.

ipf.mongodb.ssl-context.trust-store-password si se establece

Tenga en cuenta que también hay general Akka Cluster Configuración de Bootstrap que usted podría desear ajustar. El general Akka Cluster La documentación de Bootstrap se puede encontrar aquí.