[AIX HP-UX Linux Solaris Windows]

Creazione di un advisor personalizzato

Un advisor personalizzato è una piccola parte di codice Java, fornito come file di classe, richiamato dal codice di base di Load Balancer per determinare il carico su un server. Il codice di base fornisce tutti i servizi amministrativi necessari, come l'avvio e l'arresto di un'istanza dell'advisor personalizzato, l'indicazione di stato e report, la registrazione di informazioni cronologiche in un file di log e la notifica dei risultati dell'advisor al componente del gestore.

Informazioni su questa attività

Gli advisor personalizzati vengono richiamati in seguito alla ricerca degli advisor nativi, o standard. Se il Load Balancer non trova un advisor specificato nell'elenco di advisor standard, verrà consultato l'elenco di advisor personalizzati. Quando il codice di base di Load Balancer richiama un advisor personalizzato, si verifica quanto riportato di seguito:
  1. Il codice di base di Load Balancer apre una connessione con la macchina server.
  2. Se il socket viene aperto, il codice di base richiama la funzione GetLoad dell'advisor specificato.
  3. La funzione GetLoad dell'advisor effettua le operazioni definite dall'utente per la valutazione dello stato del server, compresa l'attesa di una risposta dal server stesso. L'esecuzione della funzione termina quando viene ricevuta la risposta.
  4. Il codice di base di Load Balancer chiude il socket con il server e riporta le informazioni sul carico al gestore. A seconda che l'advisor personalizzato operi in modalità normale o in modalità di sostituzione, il codice di base, al termine della funzione GetLoad, effettua, a volte, ulteriori calcoli.
Gli advisor personalizzati possono essere progettati per interagire con il Load Balancer in modalità normale o di sostituzione. La scelta della modalità di funzionamento viene specificata nel file dell'advisor personalizzato come un parametro nel metodo constructor. Ogni advisor funziona soltanto in una di queste modalità in base alla propria progettazione.
  • Modalità normale: l'advisor personalizzato scambia i dati con il server e il codice dell'advisor di base tempifica lo scambio e calcola il valore di carico. Il codice di base invia questo valore del carico al gestore. L'advisor personalizzato restituisce il valore zero per indicare la riuscita o un valore negativo per indicare un errore.

    Per specificare la modalità normale, impostare l'indicatore di sostituzione nel constructor su false.

  • Modalità di sostituzione: il codice di base non esegue alcuna misurazione temporale. Il codice dell'advisor personalizzato esegue qualsiasi operazione specificata, in base a requisiti univoci e restituisce un numero di carico effettivo. Il codice di base accetta il numero del carico e lo invia, inalterato, al gestore. Per ottenere risultati migliori, normalizzare i numeri del carico tra 10 e 1000; 10 indica un server veloce e 1000 indica un server lento.

    Per specificare la modalità di sostituzione, impostare l'indicatore di sostituzione nel constructor su true.

Come tutti gli advisor, un advisor personalizzato estende la funzione della classe di base dell'advisor, detta ADV_Base. L'advisor di base esegue effettivamente la maggior parte delle funzioni dell'advisor, come ad esempio la notifica dei carichi al gestore affinché li utilizzi nell'algoritmo di valutazione. Inoltre, l'advisor di base effettua le operazioni di connessione e chiusura del socket e fornisce i metodi di invio e di ricezione che saranno utilizzati dall'advisor. L'advisor in sé viene utilizzato unicamente per l'invio e la ricezione dei dati sulla porta specifica del server esaminato. I metodi TCP interni all'advisor di base sono programmati per calcolare il carico. Se desiderato, un indicatore all'interno del costruttore dell'advisor di base sostituisce il carico esistente con il nuovo carico restituito dall'advisor.
Nota: in base ad un valore impostato nel costruttore, l'advisor di base fornisce il carico all'algoritmo di valutazione ad intervalli specificati. Se l'advisor non ha completato l'elaborazione e non può restituire un carico valido, l'advisor di base utilizza il carico inviato precedentemente.

Procedura

  1. Assegnare un nome al proprio advisor. I nomi dei file dell'advisor personalizzato devono avere il formato ADV_name.java, dove name è il nome scelto per il proprio advisor.
    Prevenzione dei problemi Prevenzione dei problemi:
    • Utilizzare il prefisso ADV_ per il nome dell'advisor.
    • Assegnare un nome all'advisor personalizzato utilizzando caratteri alfabetici minuscoli in modo da eliminare la sensibilità al maiuscolo/minuscolo quando un operatore digita i comandi su una riga comandi.
    • La classe dell'advisor personalizzato deve trovarsi nella sottodirectory root_install/lib/CustomAdvisors.
    • In base alle convenzioni Java, il nome della classe definita all'interno del file deve corrispondere al nome del file.
    gotcha
  2. Scrivere il proprio advisor personalizzato. Consultare Chiamate alle funzioni e ai metodi advisor personalizzati per un elenco di chiamate alle funzioni ed ai metodi da utilizzare nel proprio advisor. Tenere presente che gli advisor personalizzati devono avere tutte le routine richieste. Gli advisor devono avere i seguenti metodi di classi di base:
    • Una routine costruttore. Il constructor richiama il costruttore della classe di base.
    • Un metodo ADV_AdvisorInitialize. Questo metodo fornisce un modo per eseguire ulteriori operazioni una volta completata l'inizializzazione della classe di base.
    • Una routine getLoad. La classe advisor di base esegue l'apertura del socket; la funzione getLoad deve soltanto emettere le richieste di invio e ricezione appropriate per completare il ciclo di notifica.

  3. Compilare l'advisor.
    • È necessario scrivere gli advisor personalizzati in linguaggio Java e compilarli con un compilatore Java che sia allo stesso livello del codice di Load Balancer. Per verificare la versione di Java sul proprio sistema, emettere il seguente comando dalla directory root_install/java/bin:
      java -fullversion
      Se la directory corrente non fa parte del proprio percorso, sarà necessari specificare che Java deve essere eseguito dalla directory corrente per assicurarsi di ottenere le informazioni sulla versione corretta. In questo caso, emettere il seguente comando dalla directory root_install/java/bin:
      ./java -fullversion
    • Durante la compilazione si fa riferimento ai seguenti file:
      • Il file dell'advisor personalizzato.
      • Il file delle classi di base, ibmnd.jar, che si trova nella directory root_install/servers/lib.
    • Durante la compilazione, la propria variabile d'ambiente classpath deve puntare sia al file dell'advisor personalizzato che al file delle classi di base. Un comando di compilazione potrebbe avere il seguente formato, se l'advisor si trova nella directory corrente:
      percorso_install/java/bin/javac -classpath root_install/servers/lib/ibmlb.jar nome_ADV.java
    • L'output della compilazione è un file di classe, ad esempio nome_ADV.class. Prima di avviare l'advisor, copiare il file di classe nella directory root_install/servers/lib/CustomAdvisors/.
    Nota: è possibile compilare gli advisor personalizzati su un sistema operativo ed eseguirli su un altro sistema operativo. Ad esempio, è possibile compilare il proprio advisor su un sistema Windows, copiare il file di classe risultante in formato binario su una macchina Linux ed eseguire l'advisor personalizzato da lì. Per sistemi operativi AIX, HP-UX, Linux e Solaris la sintassi è simile.
  4. Eseguire l'advisor personalizzato. Gli advisor personalizzati vengono richiamati in seguito alla ricerca degli advisor nativi, o standard. Se il Load Balancer non trova un advisor specificato nell'elenco di advisor standard, verrà consultato l'elenco di advisor personalizzati.
    1. Se questa operazione non è ancora stata effettuata, copiare il file di classe dell'advisor nella directory secondaria CustomAdvisors sulla macchina di Load Balancer. Ad esempio, per un advisor personalizzato denominato myping, il percorso del file è root_install/servers/lib/CustomAdvisors/ADV_myping.class.
    2. Configurare Load Balancer, avviare la relativa funzione gestore ed immettere il comando per l'avvio dell'advisor personalizzato. L'advisor personalizzato è specificato con il proprio nome escluso il prefisso ADV_ e l'estensione del file:
      dscontrol advisor start name.ext porta
      Il numero porta specificato in questo comando rappresenta la porta su cui l'advisor aprirà la connessione con il server di destinazione.



Argomenti secondari
Chiamate alle funzioni e ai metodi advisor personalizzati
Ottenimento dei suggerimenti specifici del servizio con l'opzione di richiesta o risposta dell'advisor
rprf_selfadv2tier.html
Riferimenti correlati
Argomento attività Argomento attività    

Termini di utilizzo | Feedback

last-updated-altUltimo aggiornamento: Jun 23, 2011 11:26:00 AM EDT
Nome file: tprf_advcust.html