ASP.NET ahora se ha convertido en una tecnología muy popular para aplicaciones web y cada vez más personas están desarrollando aplicaciones de alto tráfico en él. Para manejar el mayor tráfico, estas aplicaciones ASP.NET se implementan en granjas web con equilibrio de carga donde puede agregar más servidores a medida que aumenta la carga de tráfico.
Pero ocurre un problema; la base de datos y su almacenamiento de datos no pueden escalar de la misma manera para manejar cargas de tráfico más altas. Entonces, lo que obtiene es un cuello de botella en el que su aplicación ASP.NET se ralentiza e incluso puede detenerse. En tales situaciones, el almacenamiento en caché de datos es una forma excelente de resolver este cuello de botella en la base de datos y el almacenamiento de datos. El almacenamiento en caché le permite almacenar datos de aplicaciones cerca y reducir esos costosos viajes a la base de datos.
NCache Detalles NCache Docs Almacenamiento en caché de ASP.NET
¿Qué es la memoria caché de ASP.NET?
ASP.NET Cache le permite almacenar en caché los datos de la aplicación y es un caché bastante rico en funciones que incluye las siguientes funciones:
- Vencimientos: Automático absoluto y deslizante vencimientos.
- Dependencia de caché: Para gestionar las relaciones de datos en la memoria caché.
- SqlCacheDependency: Para sincronizar caché con la base de datos.
- Devolución de llamada: Para ser notificado cuando los elementos se actualizan en el caché.
Aquí hay un código de muestra que muestra el uso de ASP.NET Cache
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<span class="kwrd">using</span> System.Web.Caching; <span class="rem">// Create a key to lookup in the cache</span> <span class="rem">// The key for will be like “Employees:PK:1000”</span> <span class="kwrd">string</span> key = <span class="str">"Employee:EmployeeId:"</span> + emp.EmployeeId.ToString(); Employee employee = (Employee)Cache[key]; <span class="kwrd">if</span> (employee == <span class="kwrd">null</span>) { <span class="rem"> // item not found in the cache. load from db</span> LoadEmployeeFromDb(employee); <span class="rem"> // Now, add it to the cache for future reference</span> Cache.Insert(key, employee, <span class="kwrd">null</span>, Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration, CacheItemPriority.Default, <span class="kwrd">null</span> ); } |
Dependencia de caché Dependencia SQL Caducidad de datos
Limitaciones de caché de ASP.NET en granjas web
A pesar de las características de almacenamiento en caché muy útiles, ASP.NET Cache tiene algunas limitaciones importantes. Algunos de ellos se dan a continuación:
- No se sincroniza a través de un servidor o procesos de trabajo: NET Cache no se sincroniza en varios servidores ni en varios procesos de trabajo. Por lo tanto, no puede usarlo en una granja web o incluso en un jardín web a menos que sus datos sean de solo lectura, mientras que necesita almacenar en caché todo tipo de datos, incluido uno que cambia con cierta frecuencia.
- Limitación de tamaño de caché: No puede hacer crecer la caché de ASP.NET para que sea más de lo que puede contener un proceso de trabajo de ASP.NET. Para sistemas de 32 bits, esto es 1 GB y eso también incluye el código de la aplicación. Incluso para los sistemas de 64 bits, el tamaño no se puede escalar.
Usar caché distribuida compatible con ASP.NET Cache
La manera de evitar estos limitaciones de ASP.NET Cache es usar un caché distribuido como NCache para granjas web. NCache proporciona las mismas características que ASP.NET Cache y más. Pero, como un caché distribuido, NCache sincroniza fácilmente a través de múltiples servidores. Estos son algunos de los beneficios que obtiene de NCache:
- La carga de transacciones de Scale es muy buena: Puede seguir agregando más servidores de caché al clúster de caché a medida que su granja web crece de 2 a 200 servidores. NCache nunca se convierte en un cuello de botella en el manejo de más tráfico.
- Almacenamiento de datos de la escala muy bien: A medida que agrega más servidores de caché, su capacidad de almacenamiento de caché crece debido a Topología de caché de partición.
- Replica los datos para mayor confiabilidad: Puede asegurarse de que no se produzca ninguna pérdida de datos incluso si un servidor deja de funcionar porque los datos se replican en otros servidores.
- Clúster de caché dinámico de recuperación automática: NCache proporciona 100% de tiempo de actividad a través de esto. Y puede agregar o eliminar servidores de caché en tiempo de ejecución sin detener el caché o su aplicación.
Conclusión
Bueno, si tiene una aplicación ASP.NET ejecutándose en una granja web, eche un vistazo a NCache y vea cómo ayudará a mejorar el rendimiento y la escalabilidad de su aplicación.
Siempre puede enviarnos un correo electrónico a sales@alachisoft.com
Lo aprecio por la excelente redacción. De todos modos, ¿cómo podríamos comunicarnos?
he usado NCache durante uno de mis proyectos y los resultados fueron muy impresionantes. muy recomendable !!!