Che cosa consiglierebbe per una larga scala della tecnologia Java griglia di dati: terracotta, GigaSpaces, coerenza, ecc? [chiuso]

StackOverflow https://stackoverflow.com/questions/539985

Domanda

Ho letto su cosiddette soluzioni "griglia di dati" per la piattaforma Java tra cui Terracotta, GigaSpaces e coerenza. Mi chiedevo se qualcuno ha esperienza del mondo reale di lavoro uno di questi strumenti e potrebbe condividere la loro esperienza. Sono anche molto curioso di sapere quale scala di persone di implementazione hanno lavorato con: stiamo parlando di 2-4 cluster di nodi o hai lavorato con qualcosa di molto più grande di quello

Sono attratto da terracotta a causa della sua "drop in" supporto per Hibernate e Spring, entrambi i quali usiamo pesantemente. Mi piace anche l'idea di come si decora bytecode in base alla configurazione e non richiede di programmare nei confronti di un "API griglia." Io non sono a conoscenza di eventuali vantaggi per gli strumenti che utilizzano l'approccio di un'API esplicito, ma piacerebbe sentire su di loro se lo fanno in realtà esistono. :)

Ho anche passato il tempo a leggere su memcached, ma sono più interessati a sentire il feedback su queste tre soluzioni specifiche. Sarei curioso di sentire come si misura contro memcached in caso qualcuno ha utilizzato entrambe le cose.

È stato utile?

Soluzione

Abbiamo avuto 50 server che eseguono un'applicazione webservice e tutti questi server erano carico bilanciato utilizzando BigIP. L'esigenza era di cache ogni stato utente in modo che gli stati successivi non ripetere la stessa elaborazione e ottenere i dati di stato precedente. In questo modo il client del webservice non hanno bisogno di mantenere lo stato.

Abbiamo usato Terracotta di memorizzare nella cache gli stati e mai affrontato alcun problema di prestazioni. Nelle ore di punta il numero di applicazione richiesta sta ottenendo è di 100 al secondo.

Altri suggerimenti

Si consiglia di controllare le Hazelcast anche. Hazelcast è un transazionale open source, distribuito / partizionato implementazione di coda, tema, carta, set, list, blocco e servizio esecutore. E 'super facile da lavorare; basta aggiungere hazelcast.jar nel classpath e iniziare a scrivere codice. è richiesto quasi alcuna configurazione.

Hazelcast è rilasciato sotto licenza Apache e il supporto di livello aziendale è inoltre disponibile. Codice è ospitato presso Google Code .

La libreria che si sceglie in realtà dipende l'applicazione e ciò che si sta cercando di raggiungere.

ho lavorato per un negozio che ha usato coerenza per fornire scalabilità (e ridondanza, una specie) per la sua applicazioni web. Abbiamo scoperto che si deve avere circa 4-5 nodi per iniziare a ricevere i benefici da Coherence (2 o 3 nodi potenzialmente riduce le prestazioni). Credo documenti di Oracle dice che bisogno di un sacco (30+) i nodi per ottenere davvero un vantaggio con coerenza. Se si va con coerenza, assicuratevi di avere l'hardware configurato correttamente - è molto sensibile alla latenza.

Io personalmente vorrei stare lontano da una roba "drop-in". Potrebbero dare qualcosa per cominciare, ma più volte si incorrere in problemi di sincronizzazione o di prestazioni e dovranno iniziare a scrivere codice specifico per il vostro livello di griglia in ogni caso. In sostanza, si conosce l'applicazione migliore della biblioteca, e sarà in grado di capire quali elementi devono essere nella cache, quanto tempo hanno bisogno per vivere, come verrà utilizzato il vostro app, ecc

Non ho abbastanza esperienza con queste tecnologie, ma penso che Apache Hadoop è dimostrato di essere scalabile e affidabile. Yahoo ha funzionato su grappolo 10.000 nucleo Linux .

Si basa su Google MapReduce algoritmo.

Questo articolo descrive MapReduce e perché si dovrebbe cura su di esso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top