En artículos anteriores hemos visto Cómo instalar MemCached 64bits en Solaris 10. Bien, ahora vamos a ver cómo podemos instalar JMemCached, que como podeis imaginaros es la Implementación en Java de MemCached.
En este caso vamos a utilizar SMF para gestionar el sistema de cache y, de esta forma, poder tener un control sobre si correcto funcionamiento utilizando los comandos: svcadm y svcs
Para ello, descargamos el manifest, method y lo cargamos en nuestro repositorio, en mi caso /var/svc/manifest/application/cache.
Hay que tener en cuenta que las configuraciones por defecto del archivo de descripción <jmemcached.xml> son las siguientes:
- HOME: Indica la ubicación de instalación de JMemCached, en mi caso /opt/www/jmemcached
- PORT: Puerto de escucha de JMemCached, en mi caso 11212
- JVMARGS: Parámetros de configuración de la JVM, en mi caso -Xms512m -Xmx512 -d64
- PROJECT: Projecto del sistema, en mi caso cached.jmemcached
- MEMORY: Memoria asignada a JMemCached <no confundir con memoria de JVM>, en mi caso 256M
- BINARY: Binario de ejecución, en mi caso jmemcached-cli-0.8-main.jar
Añadimos el usuario, grupo y project
# groupadd wwwDescargamos los manifest y creamos la estructura de log del method
# useradd -s /bin/false -d /dev/null -g www www
# passwd -l www
# projadd -G www cached.jmemcached
# cd /var/svc/manifest/application/Descargamos JMemCached en /opt/www/jmemcache <home>
# mkdir cache
# cd cache/
# /usr/sfw/bin/wget http://blog.sfchildren.com/blogger/jmemcached/jmemcached.xml
# cd /lib/svc/method/
# /usr/sfw/bin/wget http://blog.sfchildren.com/blogger/jmemcached/jmemcached
# mkdir -p /opt/www/jmemcached
# chown www:www /opt/www/jmemcached/
# mkdir -p /var/log/jmemcached/
# chown www:www /var/log/jmemcached
# cd /opt/www/jmemcachedCargar y Activar el FRMI
# /usr/sfw/bin/wget http://jmemcache-daemon.googlecode.com/files/jmemcached-cli-0.8-main.jar
# cd /var/svc/manifest/application/cacheComprobación de Funcionamiento
# svccfg
svc:> validate /var/svc/manifest/application/cache/jmemcached.xml
svc:> import /var/svc/manifest/application/cache/jmemcached.xml
svc:> quit
# svcadm enable jmemcached
# svcs jmemcached
STATE STIME FMRI
online 19:57:01 svc:/application/cache/jmemcached:jmemcached_main
Para comprobar su funcionamiento podemos hacer tanto un ps, como un telnet al puerto que tengamos definido. Además, si hacemos un kill -9 sobre el pid, veremos como SMF se encarga de levantarlo de nuevo.
# svcs jmemcachedComo podemos ver, nuestro proceso de JMemCached tiene 315 como PID, así que si hacemos un ps, podremos verlo
STATE STIME FMRI
online 19:57:01 svc:/application/cache/jmemcached:jmemcached_main
# svcs -p jmemcached
STATE STIME FMRI
online 19:57:01 svc:/application/cache/jmemcached:jmemcached_main
19:56:59 315 java
# ps -ef|grep 315Conclusiones
www 315 1 0 19:56:59 ? 0:01 /usr/jdk/instances/jdk1.5.0/bin/sparcv9/java -Xms512m -Xmx512m -jar /opt/www/jmemcached
La instalación de una aplicación Java utilizando SMF no supone mayores problemas, a excepción del uso de espacios en blanco en los argumentos de la propiedad jvmargs, para ello hemos tenido que utilizar un pequeño ajuste pero convertir los "\" por " " y "'" por "", a continuación vemos la línea que hay que utilizar en el script de inicio
# Patch to Solve multiples ARGS values onto JVMARGS
JMEMCACHED_JVMARGS=`echo $JMEMCACHED_JVMARGS | sed -e 's/"//g' | sed -e 's/\\\//g'`
Espero que esto os permita crear mas servicios utilizando el framework SMF y, perderle el miedo a esta nueva forma de trabajo.
Referencias
No hay comentarios:
Publicar un comentario