microsoft - porta azure
Configuración del rol del trabajador del servicio en la nube de Redis en Azure (2)
Para instalar cualquier software en una instancia de rol de trabajador, deberá configurar esto para que se realice como una tarea de inicio.
Hará referencia a las tareas de inicio en su archivo ServiceDefinition.csdef, en el elemento <Startup>
, con una referencia a su archivo de comando que instala el software que desee (como Redis).
No intenté instalar Redis en una instancia de rol de trabajador, por lo que no puedo comentar si esto tendrá éxito. Y también deberá preocuparse por abrir los puertos correctos (ya sea externos o internos) y escalar (por ejemplo, ¿qué ocurre cuando se escala a dos instancias de roles de trabajadores, ambos ejecutando redis?). Mi respuesta es específica sobre cómo instalar el software en una instancia de rol.
Más información sobre la configuración de la tarea de inicio está aquí .
Estoy creando un servicio en la nube en el que tengo una función de trabajador ejecutando algunos procesos pesados en segundo plano, por lo que me gustaría que una instancia de Redis se ejecute localmente en el trabajador.
Lo que quiero hacer es configurar el proyecto de rol de trabajador de forma que la instancia de Redis se instale / configure cuando se implemente el trabajador.
La base de datos redis se borrará en cada inicio de trabajo.
He mirado el redis de MSOpenTech para Windows con la instalación de nuget, pero no estoy seguro de cómo conseguiría que esto funcione en la instancia de rol de trabajador. ¿Hay una manera inteligente de configurarlo, o sería por medio de llamadas de línea de comandos?
Gracias.
No espero que esto se marque como una respuesta, pero solo quería agregar el agregado de que este es un enfoque realmente malo para una implementación en el mundo real .
Puedo entender por qué es posible que desee hacer esto desde una perspectiva de aprendizaje, sin embargo, en un entorno de producción es una muy mala idea, por varias razones:
- No puede garantizar cuándo Azure Service Fabric reiniciará un Rol de trabajador (y no garantiza que el VM subyacente esté en el mismo estado antes de que se cayera): es posible que esté volviendo a llenar el caché simplemente porque el rol fue reiniciado
- En una implementación del mundo real de Redis, podría ejecutar múltiples nodos dentro de un clúster para que se beneficie de a) la capacidad de dividir automáticamente su conjunto de datos entre varios nodos yb) continuar operaciones cuando un subconjunto de nodos experimenta fallas, ejecutándose dentro de un Rol de Trabajador no le da nada de esto. También corre el riesgo de múltiples instancias de Redis (desconocedoras entre sí) cada vez que amplíe su Rol de trabajador.
- Tendrá que administrar su instalación de Redis dentro de la función de trabajador y simplemente no están diseñados para esto. Las Roles de trabajo de PaaS están diseñadas para ejecutar el paquete de rol de trabajador que se implementa y nada más. Si realmente desea ejecutar Redis usted mismo, probablemente debería mirar las VM de IaaS.
Recomendaría que eche un vistazo a la oferta Azure Redis Cache SaaS (vea http://azure.microsoft.com/en-gb/services/cache/ ) que ofrece una implementación totalmente administrada y altamente disponible de los Redis. Cache. Lo uso en varios proyectos y lo recomiendo encarecidamente.