2012-05-29 11 views
9

Sto cercando una libreria open source che consenta il bilanciamento del carico programmatico attraverso un insieme di chiamate a nodi di forma arbitraria, quindi nessuna supposizione su HTTP o qualsiasi altra cosa, solo una chiamata di metodo su un oggetto. L'ideale sarebbe fornire le seguenti funzionalità:Esiste una buona libreria di bilanciamento del carico astratto open source per Java?

  • bilancia il carico ugualmente
  • Retry su un nodo diverso se una chiamata a un nodo genera un'eccezione
  • spostare un nodo ad uno stato "spezzato" se una chiamata ad esso non riesce e non effettua ulteriori chiamate
  • Avere un meccanismo per eseguire ping in background su tutti i nodi (interrotti e attivi) che ripristinano quelli danneggiati allo stato attivo quando ritornano e spostano in modo proattivo quelli attivi in ​​stato di errore se essi fail

Credo che questo dovrebbe già esistere, ma alcuni googling devono ancora trovarlo.

+0

Questo è solitamente fatto in hardware utilizzando F5 o Ace. – duffymo

+0

In questo caso non penso che sia pratico: stiamo utilizzando un'API esistente che esegue una connessione socket TCP/IP diretta a un nodo remoto e non c'è F5 o asso. Ci sono più nodi e dobbiamo gestire il failover ecc. Sembrava che la soluzione più semplice fosse un bilanciamento del carico del software. –

risposta

4

Considerare l'utilizzo della libreria Apache Camel. C'è un flessibile load balancer e la libreria ha una vasta gamma di componenti, quindi non si deve attenersi a particolari protocolli o implementazione del servizio. Con il componente Camel Bean è possibile bilanciare il carico anche con chiamate di metodo POJO.

+0

Fantastico, grazie - proprio quello che stavo cercando. –

1

Si potrebbe anche guardare JavaSpaces. Il paradigma c'è una coda semplice. Il processore meno attivo è il più probabile a prendere l'elemento successivo in coda.

Problemi correlati