El modelo de actores se caracteriza por establecer un modelo de computación basado en el Reactive Manifesto que nos permite construir:
- Sistemas altamente concurrentes
- Sistemas escalables tanto horizontalmente como verticalmente
- Sistemas fiables y tolerantes a errores
Para empezar vamos a ver como se define un actor ya que tenemos 3 formas distintas dependiendo de nuestras necesidades. Los actores en Akka.net hacen un uso extensivo de pattern matching para seleccionar cómo se van a gestionar los mensajes dependiendo de su tipo o valor.
Para nuestro ejemplo definimos dos simples mensajes POCO:
|
|
Untyped Actor
Es la forma más básica para definir un actor y nos obliga a sobreescribir el método OnReceive. Al ser de más difícil lectura se recomienda la opción TypedActor o ReceiveActor.
|
|
TypedActor
Con TypedActor se hace mucho más explícito el tipo de mensajes que un actor puede procesar y aumenta la legibilidad del código.
|
|
ReceiveActor
ReceiveActor – que hereda de UntypedActor – nos proporciona la capacidad de seleccionar cómo gestionar los mensajes de forma más sofisticada.
En este caso, le decimos que trate de forma distinta los mensajes de tipo DoSomething en que el valor de la propiedad empieza por “Barcelona”. El orden en la declaración es importante!
|
|
Happy coding!