Configuración de Akka en Java - llpuchaicela/Threads_VS_Actor_Model GitHub Wiki

Para aprovechar 👍 los actores de Akka, :shipit: se debe agregar la siguiente dependencia de Maven Central:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="[http://maven.apache.org/POM/4.0.0](https://l.facebook.com/l.php?u=http%3A%2F%2Fmaven.apache.org%2FPOM%2F4.0.0%3Ffbclid%3DIwAR2GlWF22lS2hVzMCwFiv0nCytUH3Ryu930ugwfOBX91UDdbM47f5Pv4vkI&h=AT1gtDJ9IfBL6sgJhJ-YWKGE4uNVGbwU-Ms6chXol3hE1hkINaZgC1iXtUrqShrruf3AsqzdGwRyglMwsOikbhWJ38kuu9ZacSEZy_SsS0snCRm8QITByRwDiG1DPL5PPfYvPA)"
         xmlns:xsi="[http://www.w3.org/2001/XMLSchema-instance](https://l.facebook.com/l.php?u=http%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema-instance%3Ffbclid%3DIwAR1X6Q6Uy80eb1RfNhiVmzSvWtVbaE5J2d7R-lBz9Vd-FBnck_FTKB8AMtM&h=AT1gtDJ9IfBL6sgJhJ-YWKGE4uNVGbwU-Ms6chXol3hE1hkINaZgC1iXtUrqShrruf3AsqzdGwRyglMwsOikbhWJ38kuu9ZacSEZy_SsS0snCRm8QITByRwDiG1DPL5PPfYvPA)"
         xsi:schemaLocation="[http://maven.apache.org/POM/4.0.0](https://l.facebook.com/l.php?u=http%3A%2F%2Fmaven.apache.org%2FPOM%2F4.0.0%3Ffbclid%3DIwAR2WuNihe6n1V6VRZj1L229-QY91NBF2P7j5LKD2M3XgjeBwxT4uL_eJQHc&h=AT1gtDJ9IfBL6sgJhJ-YWKGE4uNVGbwU-Ms6chXol3hE1hkINaZgC1iXtUrqShrruf3AsqzdGwRyglMwsOikbhWJ38kuu9ZacSEZy_SsS0snCRm8QITByRwDiG1DPL5PPfYvPA) [http://maven.apache.org/xsd/maven-4.0.0.xsd](https://l.facebook.com/l.php?u=http%3A%2F%2Fmaven.apache.org%2Fxsd%2Fmaven-4.0.0.xsd%3Ffbclid%3DIwAR30ved05Y0oCwan0XvV0T3cQv45YrcoM0s9SuQv95_8vpwTjD6Nj-uD5e8&h=AT1gtDJ9IfBL6sgJhJ-YWKGE4uNVGbwU-Ms6chXol3hE1hkINaZgC1iXtUrqShrruf3AsqzdGwRyglMwsOikbhWJ38kuu9ZacSEZy_SsS0snCRm8QITByRwDiG1DPL5PPfYvPA)">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>ProyectoFinal</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>com.typesafe.akka</groupId>
            <artifactId>akka-actor_2.12</artifactId>
            <version>2.5.11</version>
        </dependency>

    </dependencies>
</project>

Para la creación de un actor se definirá de la siguiente manera con un ActorSystem con la configuración predeterminada y un nombre personalizado:

1 ActorSystem system = ActorSystem.create("test-system");

  • El actor guardián raíz que tiene la dirección "/" que, como indica el nombre, representa la raíz de la jerarquía del sistema actor
  • El actor guardián del usuario que tiene la dirección “/usuario”. Este será el padre de todos los actores que definamos.
  • El actor guardián del sistema tiene la dirección “/sistema”. Este será el padre de todos los actores definidos internamente por el sistema Akka Cualquier actor de Akka extenderá la clase abstracta AbstractActor e implementara el metodo createReceive() para manejar los mensajes entrantes de otros actores:
1 public class ActorMulti extends AbstractActor {
2    public Receive createReceive() {
3        return receiveBuilder().build();
4    }
5}

Este es el actor más basico que podemos crear. Puede recibir mensajes de otros actores y los descartará porque no hay patrones de mensajes coincidentes definidos en ReceiverBuilder. Hablaremos sobre la coincidencia de patrones de mensajes mas adelante en este articulo.

Una vez creado el primer actor, se debe incluir en ActorSystem:

1  ActorRef resu = actorPadre.actorOf(ActorMulti.props), "ActorHijo" +i +j );
⚠️ **GitHub.com Fallback** ⚠️