Las aplicaciones actuales necesitan escalar y manejar niveles extremos de carga de transacciones. Pero las bases de datos no pueden escalar y, por lo tanto, se convierten en un cuello de botella. Para resolver esto, muchas personas recurren a caché distribuida en memoria porque escala linealmente y elimina los cuellos de botella de la base de datos.
Una caché distribuida normalmente contiene dos tipos de datos, datos transaccionales y datos de referencia. Los datos transaccionales cambian con mucha frecuencia y, por lo tanto, se almacenan en caché durante muy poco tiempo. Sin embargo, el almacenamiento en caché aún proporciona un impulso considerable al rendimiento y la escalabilidad.
Los datos de referencia, por otro lado, no cambian con mucha frecuencia. Pueden ser datos estáticos o datos dinámicos que cambian quizás cada hora, día, etc. A veces, estos datos pueden ser enormes (en gigabytes). Sería bueno si estos datos de referencia pudieran precargarse en un caché distribuido al iniciarse el caché porque entonces sus aplicaciones no necesitarían cargarlos en tiempo de ejecución. Cargando datos de referencia en tiempo de ejecución ralentizaría el rendimiento de su aplicación, especialmente si se trata de una gran cantidad de datos.
NCache Detalles NCache Docs Cargador de caché y documentos de actualización
¿Cómo se deben precargar los datos de referencia en una caché distribuida?
Un enfoque es diseñar su aplicación de tal manera que durante el inicio de la aplicación obtenga todos los datos de referencia requeridos de la base de datos y los coloque en el caché distribuido.
Sin embargo, este enfoque plantea algunas otras cuestiones. Primero, ralentiza el inicio de su aplicación porque su aplicación ahora está involucrada en la precarga del caché. En segundo lugar, si tiene varias aplicaciones que comparten un caché distribuido, entonces tiene duplicación de código en cada aplicación o todas sus aplicaciones dependen de una aplicación que precarga el caché distribuido. Finalmente, incrustar código de precarga de caché dentro de su aplicación corrompe el diseño de su aplicación porque está agregando código que no pertenece a su aplicación. Por supuesto, ninguna de estas situaciones es muy deseable.
¿Y si le damos esto? responsabilidad de precarga al propio caché distribuido? En este caso, la carga previa podría ser parte del proceso de inicio del caché y, por lo tanto, no involucra a su aplicación en absoluto. Puede configurar el caché para precargar todos los datos requeridos al inicio, de modo que esté disponible para que todas las aplicaciones lo usen desde el principio. Esto simplifica su aplicación porque ya no tiene que preocuparse por la lógica de precarga.
NCache Detalles NCache Docs Cargador de caché y documentos de actualización
Carga previa de datos de referencia en caché
NCache proporciona una función muy poderosa y flexible para precargar su caché al inicio. Puede escribir un código personalizado para su cargador de caché y registrarlo con NCache. Una vez hecho esto, NCache llama al cargador de caché (con su código personalizado) al iniciar el caché. Antes de pasar a la implementación, primero conozcamos los componentes básicos de NCache Cargador de inicio de caché.
- Servicio de cargador: Para una topología agrupada, un dedicado servicio de cargador se ejecuta en cada nodo para cargar datos según el asshttps://www.alachisoft.com/resources/docs/ncache/prog-guide/cache-startup-loader-overview.html#loader-serviceigned conjunto de datos. Esto mejora el rendimiento de carga al reducir la carga del proceso de caché.
- Conjuntos de datos: Los datos a cargar se dividen en conjuntos de datos lógicos por el usuario y distribuida a los nodos utilizando el algoritmo round-robin. Esto acelera el proceso de carga al lograr el paralelismo.
Para profundizar en el NCache función de precarga, puede ver la propiedades del cargador de cachéAdemás, NCache también facilita la actualización de los datos de caché cargados al proporcionar el Actualización de caché .
Implementar la interfaz ICacheLoader
Para habilitar la precarga usando NCache, necesita implementar una interfaz simple llamada ICacheLoader
. Se llama para ayudar al caché a responder a la pregunta "¿Cómo y qué datos cargar?". Así es como puede simplemente codificar a medida los siguientes métodos de ICacheLoader
interfaz basada en los requisitos de su negocio.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
class CacheLoader : ICacheLoader { public void Init(IDictionary<string, string> parameters, string cacheName) { //connect to cache cache = CacheManager.GetCache(cacheName); //Connection string is passed as parameters at the time of configuration // connectionString = parameters.ContainsKey("ConnectionString") ? parameters["ConnectionString"] : null; if (connectionString != null) { //Let's connect to the database connection = new SqlConnection(connectionString); } } public object LoadDatasetOnStartup(string dataSet) { // Create a list of datasets to load at cache startup IList<object> datasetToLoad; if (dataSet != null) { switch (dataSet.ToLower()) { // If dataset is "products", fetch products from data source to load in cache case "products": datasetToLoad = FetchProductsFromDataSource(); // Insert fetched product in the cache // You can also use NCache bulk API to insert data into cache foreach (var product in datasetToLoad) { string key = $"ProductID:{product.Id}"; cache.Insert(key, product); } break; // You can add more cases for different datasets as per requirement and fetch them from the data source default: // Invalid dataset throw new Exception($"Unknown dataset is configured. Dataset {dataSet}"); break; } } return null; } } |
Cualquier excepción que ocurra durante el procesamiento del cargador de inicio se registra sin crear ningún problema para su aplicación. ¡Simple y efectivo!
Configurar el cargador de inicio
Una vez que haya implementado Cache Startup Loader, puede configurarlo para su caché, usando NCache Administrador web. Puede habilitar el cargador de caché desde la página de configuración detallada para el caché en NCache Administrador web. Para conocer los pasos detallados, puede consultar cómo configurar el cargador de inicio de caché usando NCache Web Manager.
También puede agregar y eliminar conjuntos de datos a un caché con el cargador de caché configurado usando el Add-StartupLoader
y Remove-StartupLoader
cmdlets de PowerShell, respectivamente. Puede ver los ejemplos relevantes para añadir conjunto de datos del cargador y eliminar el cargador de inicio para un mejor entendimiento.
¡Conclusión!
Como se puede ver, NCache le proporciona un poderoso mecanismo para precargar su caché distribuida y mantener el rendimiento de sus aplicaciones siempre alto. Además, NCache también facilita la actualización de los datos de caché cargados al proporcionar el Actualización de caché rasgo. Entonces, descarga NCache ¡ahora y prepárate para usar sus amplias funciones!
Es en realidad una buena y útil pieza de información. Estoy satisfecho de que haya compartido esta información útil con nosotros.
Por favor, quedamos informados de esta manera. Gracias por compartir.
Hola, encontré su sitio web por medio de
Google mientras buscaba un tema similar, su sitio web llegó aquí
arriba, parece estar bien. Lo he marcado en mis marcadores de Google.
Hola, simplemente me enteré de su blog a través de Google y descubrí que es realmente informativo.
Voy a tener cuidado con Bruselas. Le agradeceré que proceda con esto.
en el futuro. Probablemente muchas personas se beneficiarán
de su escritura. ¡Aclamaciones!