Primavera es un marco y contenedor de desarrollo ligero, de inyección de dependencia y orientado a aspectos para Java. Reduce la complejidad general del desarrollo de J2EE y proporciona alta cohesión y bajo acoplamiento. Debido a los beneficios que proporciona Spring, muchos desarrolladores lo utilizan para crear aplicaciones pequeñas y de nivel empresarial de alto tráfico.
Pero estas aplicaciones Spring de alto tráfico se enfrentan a un gran problema de escalabilidad. Aunque pueden escalar agregando más servidores a la granja de servidores de aplicaciones, su servidor de base de datos no puede escalar de la misma manera para manejar la creciente carga de transacciones. En tales situaciones, una caché distribuida de Java es su mejor opción para manejar, ya que descarga su base de datos al reducir esos costosos viajes a la base de datos y también mejora el rendimiento de su aplicación.
NCache Detalles NCache Docs NCache Documentos de almacenamiento en caché de Spring
¿Por qué Spring Application con NCache?
NCache, un caché distribuido en memoria ha implementado el proveedor Spring Caching mediante la introducción de un mecanismo genérico de caché de Java con el que puede almacenar fácilmente en caché el resultado de sus métodos intensivos de CPU, lentos y vinculados a la base de datos de la aplicación Spring. Este enfoque no solo reduce la carga de la base de datos, sino que también reduce la cantidad de ejecuciones de métodos y mejora el rendimiento de la aplicación. En este blog, seguiré discutiendo sobre cómo configurar Spring Caching con NCache.
NCache Detalles NCache como caché de datos Spring Configurar aplicación usando NCache
Cómo configurar Spring Caching para usar NCache?
NCache proporciona soporte de almacenamiento en caché Spring a través de Proveedor genérico de almacenamiento en caché Spring, Donde NCache actúa como un administrador de caché para su aplicación Spring y a través de Proveedor de almacenamiento en caché JCache, Donde NCache utiliza la función compatible de JCache. Simplemente siga los pasos que se indican a continuación para ambas formas y configure NCache con su aplicación Spring.
Proveedor genérico de almacenamiento en caché Spring
Para configurar su aplicación Spring con NCache Proveedor genérico de almacenamiento en caché Spring, primero debe agregar el requerido Dependencia de Maven esa primavera y NCache proporciona. Luego, defina beans en su aplicación Spring a través de Definición de Bean basada en Java or Definición de Bean basada en XML.
Para definir beans utilizando una definición basada en Java, debe agregar el @Bean
anotación en el CachingConfiguration
clase donde el setConfigFile()
El método especificará la ruta a su ncache-spring.xml
archivo, que se muestra a continuación.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
@Configuration @EnableCaching public class CachingConfiguration { @Bean public CacheManager cacheManager() { SpringConfigurationManager springConfigurationManager = new SpringConfigurationManager(); URL resource = getClass().getClassLoader().getResource("ncache-spring.xml"); springConfigurationManager.setConfigFile(resource.getPath()); NCacheCacheManager cacheManager = new NCacheCacheManager(); cacheManager.setSpringConfigurationManager(springConfigurationManager); return cacheManager; } } |
Para definir beans utilizando una definición basada en XML, debe agregar un archivo xml que permita el almacenamiento en caché y especifique NCache como administrador de caché. Las etiquetas de frijoles deben definirse para ambos cacheManager
y NCacheConfigurationManager
. También, springConfigurationManager
y logFilePath
deben especificarse propiedades para cacheManager. Para obtener más detalles sobre estas propiedades, consulte nuestro Documentos de almacenamiento en caché de Spring.
NCache Administrador de caché utiliza el ncache-spring.xml
archivo, donde los cachés deben configurarse y definirse con su propio conjunto de propiedades. El código de ejemplo se proporciona a continuación.
1 2 3 4 5 |
<application-config default-cache-name="default"> <caches> <cache name="CustomerCollectionCache" ncache-instance="demoCache" priority="normal" expiration-type="absolute" expiration-period="10"/> </caches> </application-config> |
Proveedor de almacenamiento en caché JCache Spring
Spring también es compatible con los proveedores de almacenamiento en caché de quejas de JCache, donde puede usar JCache en su aplicación Spring con NCache. Agregue la dependencia de Maven requerida para Spring Framework o Spring Boot y NCache para la integración. Luego configure su caché para la aplicación JCache Spring.
Puede configurar su caché con las dos formas explicadas más adelante. Uno es, puedes agregar spring.cache.cache-names
etiqueta en el application.properties
expediente. El nombre de la caché debe ser el mismo que el configurado en NCache Web Manager.
1 |
spring.cache.cache-names=demoCache,booksCache |
Otro es que puede configurar su caché a través del JCacheManagerCustomizer
clase que inicializa el caché en tiempo de ejecución con la configuración deseada.
1 2 3 4 5 6 7 8 9 10 11 |
@Configuration public class CacheConfiguration implements JCacheManagerCustomizer { @Override public void customize(CacheManager cacheManager) { MutableConfiguration mutableConfiguration = new MutableConfiguration(); mutableConfiguration.setExpiryPolicyFactory(CreatedExpiryPolicy.factoryOf(Duration.ONE_MINUTE)); cacheManager.createCache("booksCache", mutableConfiguration); } } |
Identificar los métodos que deben almacenarse en caché mediante la declaración de almacenamiento en caché
Una vez que habilitó el almacenamiento en caché a través de las dos configuraciones definidas anteriormente, el siguiente paso es vincular estos comportamientos de almacenamiento en caché a sus respectivos métodos para poder usar NCache como proveedor de almacenamiento en caché para Spring.
Puede vincular los comportamientos de almacenamiento en caché a sus métodos de dos maneras. uno ha terminado Almacenamiento en caché de anotaciones y el otro esta terminado Almacenamiento en caché basado en XML declarativo. Para obtener una comprensión detallada, vaya a la Configurar declaración de almacenamiento en caché Spring Docs.
Siguiendo el código de muestra usando la anotación @Cacheable para realizar el almacenamiento en caché en el servicio web que contiene el caché booksCache.
1 2 3 4 5 6 7 8 9 |
// BookService.java @Service public class BookService { @Cacheable("booksCache") public String getBookNameByIsbn(String isbn) { return findBookInSlowSource(isbn); } // further code } |
NCache Detalles Documentos de la API de JCache Almacenamiento en caché de hibernación
¡Conclusión!
Mediante el uso NCache como proveedor de Spring Caching, puede escalar sus aplicaciones Spring de forma lineal y con un rendimiento mejorado. ¡Simplemente modifique sus archivos de configuración y listo! Entonces, descarga NCache ahora y pruébalo por ti mismo!