Configurar Akka Arrendamiento MongoDB

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-lease-mongodb-plugin</artifactId>
    <version>${akka-lease-mongodb-plugin.version}</version>
</dependency>

Para encontrar la última versión, puede utilizar esta consulta de Nexus.

Paso 1: Utilice el Contrato de Arrendamiento

Creando un contrato de arrendamiento de manera programática

Vea el oficial Akka docs para más detalles.

LeaseProvider provider = LeaseProvider.get(system);
Lease lease =  provider.getLease("<name of the lease>",
            "akka.coordination.lease.mongodb",
            "<owner name>");

CompletionStage<Boolean> acquired = lease.acquire();
boolean stillAcquired = lease.checkLease();
CompletionStage<Boolean> released = lease.release();

Utilizando el contrato de arrendamiento con Akka Resolutor de Cerebro Dividido

Para utilizar el MongoDB Para arrendar con el Resolutor de Cerebro Dividido, simplemente añada el fragmento a continuación de su archivo de configuración (application.conf).

Para más información, consulte el oficial Akka docs.

akka {
  cluster {
    downing-provider-class = "akka.cluster.sbr. SplitBrainResolverProvider"
    split-brain-resolver {
      active-strategy = "lease-majority"
      lease-majority {
        lease-implementation = "akka.coordination.lease.mongodb"
      }
    }
  }
}

Utilizando el contrato de arrendamiento con Akka Cluster Singleton

Para utilizar el MongoDB arrendamiento con el Akka Cluster Singleton, simplemente añada el fragmento a continuación de su archivo de configuración (application.conf).

Para más información, consulte el oficial Akka docs.

akka.cluster.singleton.use-lease = "akka.coordination.lease.mongodb"

Utilizando el contrato de arrendamiento con Akka Cluster Sharding

Para utilizar el MongoDB arrendamiento con el Akka Cluster Sharding, simplemente añada el fragmento a continuación de su archivo de configuración (application.conf).

Para más información, consulte el oficial Akka docs.

akka.cluster.sharding.use-lease = "akka.coordination.lease.mongodb"

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.coordination.lease.mongodb.url

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.coordination.lease.mongodb.collection

El nombre de la colección que contendrá los datos del arrendamiento.

akka-lease-mongodb

akka.coordination.lease.mongodb.create-indexes

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

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

Rinde homenaje al IPF global ipf.mongodb.create-indexes anular.

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

akka.coordination.lease.mongodb.commit-quorum

El quórum de confirmación para utilizar al crear el índice para Akka Arrendamiento MongoDB.

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

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

akka.coordination.lease.mongodb.heartbeat-timeout

La duración de gracia para permitir arrendamientos adquiridos antes de que otro propietario pueda adquirirlos.

30s

akka.coordination.lease.mongodb.heartbeat-interval

El intervalo que un propietario de arrendamiento utilizará para actualizar la propiedad del arrendamiento.

3s

akka.coordination.lease.mongodb.operation-timeout

La duración después de la cual una operación de arrendamiento (adquirir, liberar) se considera un tiempo de espera.

5s

akka.coordination.lease.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 lo global ipf.mongodb.set-ssl-context anular.

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

akka.coordination.lease.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.coordination.lease.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.coordination.lease.mongodb.ssl-context.key-store-password

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

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

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

akka.coordination.lease.mongodb.ssl-context.key-password

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

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

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

akka.coordination.lease.mongodb.ssl-context.trust-store-type

Tipo de la tienda de confianza.

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

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

akka.coordination.lease.mongodb.ssl-context.trust-store-location

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

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

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

akka.coordination.lease.mongodb.ssl-context.trust-store-password

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

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

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