plugin play framework java playframework memcached ebean playframework-2.6

plugin - Obteniendo Java Play framework para almacenar en caché las entidades de Ebean usando memcached



ebean plugin play framework (1)

Estoy ejecutando Java Play framework versión v2.6.1 y utilizando Ebean para la persistencia. Mi intención es hacer que el almacenamiento en caché de bean se play2-memcached complemento play2-memcached .

¿Qué he hecho hasta ahora?

  • instaló memcached en localhost y habilitó el registro detallado.
  • reemplazó la dependencia de cacheApi con cacheApi en libraryDependencies en build.sbt (esto, supongo, debería eliminar Ehcache por completo).
  • agregado "com.github.mumoshu" %% "play2-memcached-play26" % "0.9.0", a libraryDependencies en build.sbt
  • se agregó "Spy Repository" at "http://files.couchbase.com/maven2", a los resolvers en build.sbt
  • Se agregaron las siguientes entradas a la aplicación conf:

play.modules.disabled += "play.api.cache.ehcache.EhCacheModule" play.modules.enabled+="com.github.mumoshu.play2.memcached.MemcachedModule" play.cache.defaultCache=default play.cache.bindCaches=["db-cache", "user-cache", "session-cache"] memcached.host="127.0.0.1:11211"

  • @com.avaje.ebean.annotation.Cache mi entidad y la hice implementar Serializable , también agregó @com.avaje.ebean.annotation.Cache anotación.
  • registro de SQL habilitado

¿Que funciona?

  • La entidad de carga con Entity.find.byId(id) da como resultado SQL SELECT . Al cargarlo nuevamente con diferentes resultados de solicitud no hay sentencias SQL.
  • abriendo el navegador a localhost: el 11211 muestra errores en syslog; esto es para asegurarse de que memcached se está ejecutando y puedo ver las solicitudes que aparecen
  • haciendo volcado de memoria puedo ver que se cargan las clases relacionadas de caché de com.github.mumoshu .

¿Qué no funciona?

  • Espero que los objetos en caché se envíen a memcached (en lectura y / o actualización). Esto no está sucediendo, no hay registros de memcached relacionados con esto. Tampoco hay conexiones al puerto 11211 si ejecuto netstat -na | grep 11211 netstat -na | grep 11211 .

¿Hay algo que me falta?


También es necesario vincular javax.caching.CacheManager . Añadir

libraryDependencies += jcache

a su build.sbt .

Si está utilizando Guice, también debe agregar lo siguiente para las anotaciones de Java:

libraryDependencies += "org.jsr107.ri" % "cache-annotations-ri-guice" % "1.0.0"

Puede encontrar más información en la sección "Soporte de JCache" de la documentación de Playframework here .