es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cuál sería el patrón para mostrar todos los actores existentes?

Programé una aplicación Akka que realiza la Administración de Dispositivos. Cada dispositivo es un Actor Akka e implementé la Máquina de Estados Finitos de Akka para controlar el ciclo de vida del dispositivo, como FUNCIONAL, DAÑADO, EN_REPARACIONES, RETIRADO, etc. y persisto los dispositivos con la Persistencia de Akka en Cassandra.

Todo funciona como un sueño, pero tengo un dilema y me gustaría preguntar cuál sería el patrón para tratar con Akka.

Tendría casi 1 000 000 de dispositivos, Akka es ideal para gestionar esas instancias individuales, pero ¿cómo lo implemento si un usuario quiere ver todos los sistemas de dispositivos y seleccionar uno, cambiar su estado…?

No puedo mostrarlo desde la tabla de registro de Akka, no podría mostrar nada más que el persistenceId.

Entonces, ¿cómo manejaría este dilema?

Mi plan actual, mientras todos los eventos llegan a mi sistema desde Kafka, también consumiría esos mensajes del tema y los redirigiría a Solr/Elasticsearch, para que pueda indexar algunos metadatos con el persistenceId, para que el usuario pueda seleccionar un dispositivo para procesar con el Actor Akka.

¿Tiene una idea mejor o cómo resuelve esta idea?

Otra opción para guardar esta información es en Cassandra a otro Keyspace, pero por alguna razón, no me apetece…

Gracias por las respuestas…

Tags:  

Answer

  1. Avatar for davy.ai

    Utilización de Akka para la gestión de dispositivos

    Como experto en TI especializado en Akka, usted ha implementado una aplicación de Akka para la gestión de dispositivos. Cada dispositivo en el sistema está representado como un actor de Akka, y ha utilizado la máquina de estado finito de Akka para gestionar el ciclo de vida de cada dispositivo. También ha utilizado la persistencia de Akka para guardar el estado del dispositivo en Cassandra.

    Sin embargo, ahora se enfrenta a un dilema. Pronto tendrá 1 millón de dispositivos en el sistema, y necesita poder mostrar a los usuarios una lista de todos los dispositivos y permitirles seleccionar y modificar dispositivos individuales. Desafortunadamente, la tabla de registro de Akka solo proporciona información sobre el ID de persistencia de cada dispositivo, que no es útil para mostrar metadatos de dispositivo a los usuarios.

    Su plan actual es consumir mensajes de un tema Kafka y redirigirlos a Solr / Elasticsearch para su indexación. De esta manera, puede indexar los metadatos del dispositivo junto con el ID de persistencia y permitir que los usuarios busquen y seleccionen dispositivos en función de estos metadatos.

    Sin embargo, todavía está buscando soluciones alternativas o mejores formas de manejar este problema.

    Una opción que mencionó es guardar los metadatos de los dispositivos en otro espacio de claves en Cassandra. Si bien esto puede funcionar, no está completamente cómodo con este enfoque.

    Otra solución potencial es utilizar una base de datos separada y liviana o una caché en memoria para almacenar los metadatos del dispositivo. De esta manera, puede consultar y mostrar los metadatos a los usuarios fácilmente sin tener que buscar en la tabla de registro de Akka. También podría considerar utilizar una caché distribuida o una base de datos NoSQL como Memcached o Redis si la velocidad es una preocupación.

    En última instancia, la mejor solución dependerá de las necesidades específicas de su aplicación y de los recursos disponibles. Sin embargo, con la flexibilidad de Akka y el diseño adecuado, debería poder encontrar una solución que funcione bien para su sistema de gestión de dispositivos.

Comments are closed.