Introducción a Terracotta (y 2)

16 abril 2009 at 12:39 pm Deja un comentario

En la anterior entrada sobre Terracotta pusimos un pequeño ejemplo con un servidor y tres clientes (un productor de tareas y dos consumidores), aunque todo corriendo en la misma máquina. Además también dejamos el ejemplo dando un feo aviso porque todos los clientes intentaba utilizar el mismo archivo de log.

En esta pequeña continuación vamos a utilizar el mismo ejemplo pero lo iremos mejorando, primero eliminando el aviso de los logs y después utilizando varias máquinas.

terracotta

Para llevar a cabo esta tarea vamos a utilizar un único tc-config.xml, que lo cargará el servidor y los clientes lo tomarán de él. Para ello es necesario arrancar el servidor (start-tc-server) desde el directorio en el que tenemos el tc-config.xml o mediante la opción -f:

start-tc-server.bat -f /ruta/al/fichero/tc-config.xml (será .bat o .sh según estemos en Windows o Unix)

Pero antes vamos a hacer unos cambios en el archivo de configuración. Le vamos a añadir la lista de servidores y le vamos a configurar el directorio de logs en función de una variable de entorno. En la web de Terracotta tenemos una guía y referencia de la configuración en la que podemos ver las descripciones de esos campos y muchos otros.

<?xml version="1.0" encoding="UTF-8"?>
<tc:tc-config xmlns:tc="http://www.terracotta.org/config">
  <servers>
    <server host="169.254.122.220"/>
  </servers>
  <clients>
    <logs>logs-%(tcymu_name)</logs>
  </clients>
  <application>
    <dso>
      <roots>
        <root>
          <field-name>org.tcymu.terracotta.TasksQueue.queue</field-name>
        </root>
      </roots>
      <instrumented-classes>
        <include><class-expression>org.tcymu.terracotta.Task</class-expression></include>
      </instrumented-classes>
    </dso>
  </application>
</tc:tc-config>

Como vemos hemos añadido la sección de servidores y la de clientes. En la de servidores ponemos la dirección IP de nuestro único servidor. En la parte de clientes configuramos el nombre del fichero de logs en función de la variable de entorno tcymu_name.

Ya podemos arrancar el servidor como hemos visto un poco más arriba. También arrancamos el generador de tareas con el comando mostrado a continuación:

dso-java.bat -Dtc.config=169.254.122.220:9510 -Dtcymu_name=creator -cp classes org.tcymu.terracotta.TaskCreator

Las diferencias con respecto al que utilizamos en la primera parte son:

  • Se le pasa la dirección del servidor (con su puerto por defecto en este caso) de la que va a tomar el tc.config.xml.
  • Se le pasa la variable de entorno que se utiliza para nombrar el archivo de logs.

Utilizaremos un comando similar para arrancar el primero de los consumidores de tareas, variando sólo la clase a arrancar y el valor de la variable de entorno para el fichero de logs.

Por supuesto al tomar el tc.config.xml de un servidor a través de una dirección IP podemos arrancar el segundo consumidor en otra máquina (en este caso un openSUSE virtualizado sobre VirtualBox):

dso-java.sh -Dtc.config=169.254.122.220:9510 -Dtcymu_name=resolver2 -cp classes org.tcymu.terracotta.TaskResolver

terracotta2_1

Con esto terminamos esta pequeña continuación.

Entry filed under: Java. Tags: , .

Introducción a Terracotta: cluster a nivel máquina virtual Linux para niños

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Trackback this post  |  Subscribe to the comments via RSS Feed


Mi perfil

View Miguel Orbegozo's profile on LinkedIn

Feedjit

Feeds

Otros…

BlogESfera Directorio de Blogs Hispanos - Agrega tu Blog

Bitacoras.com

Add to Technorati Favorites


A %d blogueros les gusta esto: