Ho un'API webservice che consente al client di inserirsi in Cassandra. Ho letto il documento sulla pagina di datastax (http://www.datastax.com/drivers/java/2.0/com/datastax/driver/core/Session.html) affermando che dovremmo mantenere la sessione e l'oggetto cluster fino alla fine dell'applicazione. Mi stavo chiedendo dovrei chiamare session.close() e cluster.close() dopo ogni chiamata all'API web o semplicemente mantenere la sessione fino a quando non chiudo il web server?Devo chiamare session.close() e cluster. close() dopo ogni chiamata API Web
risposta
Vorrei sconsigliare la creazione di un Session
ogni volta che si riceve una richiesta. Ogni volta che crei un Session
tramite Cluster.connect
, il java-driver creerà un pool di connessioni a un numero di host sul tuo Cassandra Cluster.
Ad esempio, utilizzando le impostazioni predefinite, se si dispone di 8 cassandra nodi in un singolo centro dati, con la versione 2.0.9 del driver creerà 8 connessioni in pool a ciascun host (questo passerà a 2 nella versione successiva). Ciò creerebbe 64 connessioni ogni volta che si crea un Session
.
Sarebbe preferibile avere uno Session
condiviso che il server Web può utilizzare. Il driver può gestire più richieste per connessione (predefinito 128 per connessione per impostazione predefinita in 2.0.x), quindi non è necessario preoccuparsi di contesa nella condivisione di un singolo oggetto Session
.
Oltre a ciò che Andy descrive, questo post http://www.datastax.com/dev/blog/4-simple- rules-when-using-the-datastax-drivers-for-cassandra ti fornisce una serie di regole di base per assicurarti di utilizzare al meglio l'API –
Da te consigliato, vorrei creare una sessione e un cluster e mantenere li vivo fino alla fine della mia vita sul server Web? Ciò significa che la sessione sarà viva per sempre? Spingiamo la durata della sessione e il cluster sul lato server? È una buona idea? E se ci fossero così tanti clienti che si connettono a Cassandra allo stesso tempo? –
Corretto. Quanti clienti pensate di connettere a cassandra? C'è configurabilità nel driver con gards su quante connessioni create su ciascun nodo. Se sei preoccupato di avere un gran numero di client che si connettono a Cassandra, può essere una buona idea avere servizi intermedi che si interfacciano con cassandra per te. Un buon esempio di ciò sono le app mobili, non vorresti che ogni app mobile avesse una connessione a Cassandra, giusto? Avresti un server di back-end con cui comunica l'app mobile che effettua richieste a cassandra per conto dell'app. –
- 1. Devo chiamare Close() su un ManualResetEvent?
- 2. MemoryStream nell'utilizzo dell'istruzione - Devo chiamare close()
- 3. Devo chiamare .close() su entrambi SQLiteDatabase e SQLiteOpenHelper
- 4. Come chiamare un metodo implicitamente dopo ogni chiamata di metodo?
- 5. Devo eseguire il pop dopo ogni binmode?
- 6. Quando chiamare response.body(). Close()
- 7. Devo chiamare EndInvoke dopo un timeout?
- 8. Devo chiamare HttpURLConnection.disconnect dopo averlo terminato usando
- 9. Chiamata API Web dall'applicazione
- 10. Devo chiamare SuspendLayout per ogni controllo figlio?
- 11. Differenza tra session.Close() e session.Dispose()
- 12. Devo chiamare addSubview dopo aver chiamato addChildViewController?
- 13. Devo Dispose() o Close() un EventWaitHandle?
- 14. Devo chiamare getWritableDatabase) ogni volta (I manipolare i dati
- 15. Javascript su (prima e dopo) ogni chiamata Ajax
- 16. PHP e MySQLi close()
- 17. Chiamare API Web ASP.NET da code-behind
- 18. close() socket direttamente dopo send(): non sicuro?
- 19. Devo chiamare Close su HttpWebResponse, anche se è all'interno di un'istruzione using?
- 20. Come autenticare e autorizzare ogni chiamata WCF?
- 21. Devo chiudere un socket (TCPIP) dopo ogni transazione?
- 22. php - Devo chiamare exit() dopo aver chiamato Location: header?
- 23. API Web e OData-Pass Parametri multipli
- 24. Devo chiamare Graphics.Dispose()?
- 25. API Web e ValidateAntiForgeryToken
- 26. ASP.NET Web Api e UrlDecode
- 27. CherryPy e RESTful web api
- 28. Differenza tra fclose e close
- 29. Devo chiamare Stop prima di leggere ElapsedMilliseconds?
- 30. Configurazione gestore cluster WSO2 API
A differenza dei siti di forum, non utilizziamo "Grazie" o "Qualsiasi aiuto apprezzato" o firme su [so]. Vedi "[Se 'Hi', 'thanks', tagline e saluti saranno rimossi dai post?] (Http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be -removed-from-posts) .Ciao, è "Grazie in anticipo", non "Grazie in anticipo". –