Exportar (0) Imprimir
Expandir todo

Opciones de configuración de roles de Caché en rol (ServiceConfiguration.cscfg)

Actualizado: septiembre de 2014

noteNota
Si quiere que le guiemos a la hora de elegir la oferta de Caché de Azure que mejor se adapta a su aplicación, consulte ¿Cuál es la oferta de Caché de Azure más adecuada para mí?.

En este tema se describen las opciones de Caché de Microsoft Azure disponibles en el archivo ServiceConfiguration.cscfg. Estas opciones especifican la configuración de almacenar en memoria caché en el rol de destino. El cuadro de diálogo de propiedades de rol de Visual Studio configura automáticamente estas opciones cuando habilita almacenar en memoria caché. La información de referencia de este tema es más útil para implementaciones de servicios en la nube que no se realizan en Visual Studio y que quieren aprovechar las ventajas de almacenar en memoria caché.

El ejemplo siguiente muestra un archivo ServiceConfiguration.cscfg básico donde se ha configurado almacenar en memoria caché. Este ejemplo tiene dos cachés con nombre, default y NamedCache1. Esto puede servir de ejemplo de las secciones de referencia siguientes.

<?xml version="1.0" encoding="utf-8"?>
<ServiceConfiguration serviceName="WindowsAzure1" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="3" osVersion="*" schemaVersion="2012-10.1.8">
  <Role name="WebRole1">
    <Instances count="2" />
    <ConfigurationSettings>
      <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="UseDevelopmentStorage=true" />
      <Setting name="Microsoft.WindowsAzure.Plugins.Caching.NamedCaches" value="{&quot;caches&quot;:[{&quot;name&quot;:&quot;default&quot;,&quot;policy&quot;:{&quot;eviction&quot;:{&quot;type&quot;:0},&quot;expiration&quot;:{&quot;defaultTTL&quot;:10,&quot;isExpirable&quot;:true,&quot;type&quot;:1},&quot;serverNotification&quot;:{&quot;isEnabled&quot;:false}},&quot;secondaries&quot;:0},{&quot;name&quot;:&quot;NamedCache1&quot;,&quot;policy&quot;:{&quot;eviction&quot;:{&quot;type&quot;:-1},&quot;expiration&quot;:{&quot;defaultTTL&quot;:20,&quot;isExpirable&quot;:true,&quot;type&quot;:2},&quot;serverNotification&quot;:{&quot;isEnabled&quot;:true}},&quot;secondaries&quot;:1}]}" />
      <Setting name="Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel" value="1" />
      <Setting name="Microsoft.WindowsAzure.Plugins.Caching.DiagnosticLevel" value="1" />
      <Setting name="Microsoft.WindowsAzure.Plugins.Caching.CacheSizePercentage" value="30" />
      <Setting name="Microsoft.WindowsAzure.Plugins.Caching.ConfigStoreConnectionString" value="UseDevelopmentStorage=true" />
    </ConfigurationSettings>
  </Role>
</ServiceConfiguration>

La opción Microsoft.WindowsAzure.Plugins.Caching.NamedCaches especifica todas las cachés y sus opciones de configuración. Esta información se organiza mediante una sintaxis JSON. A las comillas dobles de la sintaxis se les aplica la referencia a la entidad de carácter con escape &quot;. El valor de NamedCaches siguiente se toma del archivo ServiceConfiguration.cscfg completo anterior.

{&quot;caches&quot;:[{&quot;name&quot;:&quot;default&quot;,&quot;policy&quot;:{&quot;eviction&quot;:{&quot;type&quot;:0},&quot;expiration&quot;:{&quot;defaultTTL&quot;:10,&quot;isExpirable&quot;:true,&quot;type&quot;:1},&quot;serverNotification&quot;:{&quot;isEnabled&quot;:false}},&quot;secondaries&quot;:0},{&quot;name&quot;:&quot;NamedCache1&quot;,&quot;policy&quot;:{&quot;eviction&quot;:{&quot;type&quot;:-1},&quot;expiration&quot;:{&quot;defaultTTL&quot;:20,&quot;isExpirable&quot;:true,&quot;type&quot;:2},&quot;serverNotification&quot;:{&quot;isEnabled&quot;:true}},&quot;secondaries&quot;:1}]}

El ejemplo siguiente muestra la misma configuración del ejemplo anterior, pero el resultado tiene formato y los símbolos &quot; se sustituyen por comillas dobles. El fin de esto es comprender mejor la sintaxis, pero no debe usarse en el archivo ServiceConfiguration.cscfg.

{
    "caches": [
        {
            "name": "default",
            "policy": {
                "eviction": {"type": 0},
                "expiration": {"defaultTTL": 10, "isExpirable": true, "type": 1},
                "serverNotification": {"isEnabled": false}
            },
            "secondaries": 0
        },
        {
            "name": "NamedCache1",
            "policy": {
                "eviction": {"type": -1},
                "expiration": {"defaultTTL": 20, "isExpirable": true, "type": 2},
                "serverNotification": {"isEnabled": true}
            },
           "secondaries": 1
        }
    ]
}

Todas las cachés con nombre se definen dentro de un campo caches de nivel superior. Cada caché con nombre se define mediante los tres campos siguientes.

 

Campo de caché Descripción

name

Especifica el nombre de la caché.

policy

Directiva para la configuración de expulsión, expiración y notificación.

secondaries

Define el número de copias de seguridad que se mantendrán para alta disponibilidad. En este momento, el valor debe ser 0 o 1. Un valor de 0 deshabilita la alta disponibilidad.

El campo policy consta de las propiedades siguientes.

 

Campo de directiva Descripción

eviction

Contiene un campo único, type, que especifica el tipo de expulsión. Los valores posibles son 0 (LRU) y -1 (ninguna). Un valor de 0 habilita la expulsión para los elementos usados menos recientemente. Un valor de -1 deshabilita la expulsión.

expiration

Contiene tres campos que describen la directiva de expiración.

  1. defaultTTL: cantidad de minutos que los elementos permanecen en la memoria caché antes de expirar.

  2. isExpirable: un valor de true habilita la expiración y un valor de false deshabilita la expiración.

  3. type: tipo de expiración. Un valor de 0 deshabilita la expiración. Un valor de 1 especifica la expiración absoluta. Un valor de 2 especifica la expiración variable. Con la expiración variable, cada acción con el elemento en la caché restablece el plazo de expiración.

ImportantImportante
Si type es establece en 0 (deshabilitado), isExpirable se debe establecer en fasle y defaultTTL se debe establecer en 0.

serverNotification

Contiene un campo único, isEnabled, que especifica si las notificaciones están habilitadas para esta caché.

Especifica el nivel inicial de la recopilación de diagnóstico para almacenar en memoria caché. Esta opción es específica para la información de diagnóstico de los roles que son clientes de una caché. Proporciona información de diagnóstico sobre el uso de la caché desde la perspectiva del cliente. Tenga en cuenta que en la topología colocalizada, es posible usar tanto ClientDiagnosticLevel como DiagnosticLevel en la misma configuración de roles.

<Setting name="Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel" value="1" />

Especifica el nivel inicial de la recopilación de diagnóstico para almacenar en memoria caché. Esta opción es específica para la información de diagnóstico de los roles que hospedan almacenar en memoria caché.

<Setting name="Microsoft.WindowsAzure.Plugins.Caching.DiagnosticLevel" value="1" />

Porcentaje de memoria disponible que se usará para almacenar en memoria caché. Para las topologías colocalizadas, debe ser un número entero sin un símbolo de porcentaje, por ejemplo, 30.

<Setting name="Microsoft.WindowsAzure.Plugins.Caching.CacheSizePercentage" value="30" />

Para las topologías dedicadas, debe ser una cadena vacía.

<Setting name="Microsoft.WindowsAzure.Plugins.Caching.CacheSizePercentage" value="" />

Cuenta de almacenamiento de que se va a utilizar para almacenar en memoria caché. Este almacenamiento se usa para conservar datos de configuración sobre el clúster de caché y es accesible desde todas las máquinas virtuales que componen el clúster de caché. Tenga en cuenta que el ejemplo siguiente usa el almacenamiento del desarrollador para la depuración local. Antes de implementar en la nube, debe cambiarlo por una cuenta de almacenamiento real.

<Setting name="Microsoft.WindowsAzure.Plugins.Caching.ConfigStoreConnectionString" value="UseDevelopmentStorage=true" />

Mostrar:
© 2015 Microsoft