Creación de un asesor personalizado

Un asesor personalizado es un fragmento pequeño de código Java que se proporciona como un archivo de clases, al que el código base de Load Balancer llama para determinar la carga de un servidor. El código base proporciona todos los servicios administrativos, incluidos iniciar y detener una instancia del asesor personalizado, proporcionar el estado e informes, anotar la información de historial en un archivo de anotaciones cronológicas y notificar los resultados del asesor al componente gestor.

Acerca de esta tarea

Se llama a los asesores personalizados después de que se han buscado los asesores nativos, o estándar. Si Load Balancer no encuentra un asesor especificado entre la lista de asesores estándar, consulta la lista de asesores personalizados. Cuando el código base de Load Balancer llama al asesor personalizado, suceden los pasos siguientes:
  1. El código base de Load Balancer abre una conexión con la máquina servidor.
  2. Si se abre el socket, el código base llama a la función getLoad del asesor personalizado.
  3. La función GetLoad del asesor efectúa los pasos que el usuario ha definido para evaluar el estado del servidor, incluida la espera a una respuesta por parte del servidor. La función termina la ejecución cuando se recibe la respuesta.
  4. El código base de Load Balancer cierra el socket con el servidor y notifica la información de carga al gestor. En función de si el asesor personalizado funciona en modalidad normal o en modalidad de sustitución, el código base a veces realiza cálculos adicionales después de que termine la función GetLoad.
Los asesores personalizados se pueden diseñar para interactuar con Load Balancer en modalidad normal o en modalidad de sustitución. La selección de la modalidad de operación se especifica en el archivo de asesor personalizado como parámetro en el método del constructor. (Cada asesor opera en una de estas modalidades únicamente, según su diseño).
  • Modalidad normal: el asesor personalizado intercambia los datos con el servidor y el código del asesor base cronometra el intercambio y calcula el valor de la carga. A continuación, el código base informa de este valor de carga al gestor. El asesor personalizado devuelve el valor cero para indicar el éxito o un valor negativo para indicar un error.

    Para especificar la modalidad normal, establezca el distintivo de sustitución del constructor en false.

  • Modalidad de sustitución: el código base no efectúa ninguna medida de temporización. El código del asesor personalizado realiza las operaciones que se especifiquen, basándose en los requisitos exclusivos y, a continuación, devuelve un número de carga real. El código base acepta el número de carga y lo notifica, sin alterar, al gestor. Para obtener los mejores resultados, normalice los números de carga entre 10 y 1000, donde 10 representa un servidor rápido y 1000 representa un servidor lento.

    Para especificar la modalidad de sustitución, establezca el distintivo de sustitución del constructor en true.

Como todos los asesores, un asesor personalizado amplía la clase base del asesor, denominada ADV_Base. La base del asesor efectúa la mayoría de las funciones del asesor, como informar de las cargas al gestor para que se utilicen en el algoritmo de peso del gestor. La base del asesor también realiza operaciones de conexión y cierre de sockets, y proporciona métodos de envío y recepción para que el asesor los utilice. El asesor sólo se utiliza para enviar y recibir datos en el puerto especificado del servidor que se está investigando. Para calcular la carga, se calcula la duración de los métodos TCP incluidos en la base del asesor. Si se desea, un distintivo en el constructor de la base de asesor sobregraba la carga existente la nueva carga devuelta desde el asesor.
Nota: En función de un valor fijado en el constructor, la base del asesor proporciona la carga al algoritmo de peso a intervalos especificados. Si el asesor no ha completado el proceso y no puede devolver una carga válida, la base de asesor utiliza la carga notificada anteriormente.

Procedimiento

  1. Indique el nombre del asesor. Los nombres de archivo del asesor personalizado deben seguir el formato ADV_nombre.java, donde nombre es el nombre seleccionado para el asesor.
    Avoid trouble Avoid trouble:
    • Debe utilizar el prefijo ADV_ para el nombre de asesor.
    • Debe dar un nombre al asesor personalizado con caracteres alfabéticos en minúscula para eliminar la distinción entre mayúsculas y minúsculas cuando el operador escribe los mandatos en la línea de mandatos.
    • La clase del asesor personalizado se debe ubicar en el subdirectorio raíz_instalación/lib/CustomAdvisors.
    • Según los convenios Java, el nombre de la clase definida dentro del archivo debe coincidir con el nombre del archivo.
    gotcha
  2. Escriba el asesor personalizado. Lea Métodos de asesor personalizados y llamadas a función para obtener una lista de métodos y llamadas a función que se utilizarán en el asesor. Tenga en cuenta que los asesores han de tener todas las rutinas necesarias. Los asesores deben tener los métodos de clase base siguientes:
    • Una rutina de constructor. El constructor llama al constructor de clase base.
    • Un método ADV_AdvisorInitialize. Este método proporciona una manera de realizar pasos adicionales después de que la clase base termine su inicialización.
    • Una rutina getLoad. La clase de asesor base lleva a cabo la apertura del socket; la función getLoad sólo necesita emitir las peticiones de envío y recepción adecuadas para completar el ciclo del asesor.

  3. Compile el asesor.
    • Debe escribir los asesores personalizados en el lenguaje Java y compilarlos con un compilador de Java que esté en el mismo nivel que el código de Load Balancer. Para comprobar la versión de Java en el sistema, ejecute el mandato siguiente desde el directorio raíz_instalación/java/bin.
      java -fullversion
      Si el directorio activo no forma parte de la vía de acceso, tendrá que especificar que se debe ejecutar Java desde el directorio activo para asegurarse de que obtiene la información de versión correcta. En este caso, ejecute el mandato siguiente desde el directorio raíz_instalación/java/bin.
      ./java -fullversion
    • Durante la compilación aparecen referenciados los siguientes archivos:
      • El archivo de asesor personalizado.
      • El archivo de clases base, ibmnd.jar, que se encuentra en el directorio raíz_instalación/servers/lib.
    • La variable de entorno classpath debe apuntar al archivo de asesor personalizado y al archivo de clases base durante la compilación. Un mandato de compilación podría tener el formato siguiente, si el asesor se encuentra en el directorio activo:
      vía de acceso_instalación/java/bin/javac -classpath raíz_instalación/servers/lib/ibmlb.jar ADV_nombre.java
    • La salida de la compilación es un archivo de clase, por ejemplo, ADV_nombre.class. Antes de iniciar el asesor, copie el archivo de clase al directorio raíz_instalación/servers/lib/CustomAdvisors/.
    Nota: Puede compilar los consejeros personalizados en un sistema operativo y ejecutarlos en otro sistema operativo. Por ejemplo, puede compilar el asesor en sistemas Windows, copiar el archivo de clase resultante, en formato binario, en una máquina Linux y ejecutar aquí el asesor personalizado. En sistemas operativos AIX, HP-UX, Linux y Solaris, la sintaxis es parecida.
  4. Ejecute el asesor personalizado. Se llama a los asesores personalizados después de que se buscan los asesores nativos, o estándar. Si Load Balancer no encuentra un asesor especificado entre la lista de asesores estándar, consulta la lista de asesores personalizados.
    1. Si todavía no lo ha hecho, copie el archivo de clase del asesor en el subdirectorio CustomAdvisors de la máquina de Load Balancer. Por ejemplo, para un asesor personalizado denominado miping, la vía de acceso del archivo será raíz_instalación/servers/lib/CustomAdvisors/ADV_miping.class.
    2. Configure Load Balancer, inicie la función de gestor y emita el mandato para iniciar el asesor personalizado. El asesor personalizado se especifica mediante su nombre, excluido el prefijo ADV_ y la extensión de archivo:
      dscontrol advisor start nombre.ext puerto
      El número de puerto especificado en el mandato es el puerto en el que el asesor abrirá una conexión con el servidor de destino.
Task topic    

Terms and conditions for information centers | Feedback

Last updated: May 23, 2013 03:57 PM EDT
File name: tprf_advcust.html