簡體   English   中英

Java中與Cassandra的多個並發連接

[英]Multiple concurrent connections to Cassandra in Java

我正在開發一個多線程應用程序,其中每個線程都使用Java訪問Cassandra。 我應該創建多個群集並在每次訪問或多個會話后將其關閉嗎? 我可以將集群或會話創建為靜態數據成員嗎?

這是將兩者都聲明為靜態時得到的日志:

14:40:50.361 [cluster1-nio-worker-0] DEBUG com.datastax.driver.core.Connection - Connection[localhost/127.0.0.1:9042-1, inFlight=0, closed=false] was inactive for 30 seconds, sending heartbeat
14:40:50.361 [cluster1-nio-worker-0] DEBUG com.datastax.driver.core.Connection - Connection[localhost/127.0.0.1:9042-1, inFlight=0, closed=false] heartbeat query succeeded

如果您正在編寫多線程應用程序,則可以將Cluster和Session創建為static成員 會話每個實例維護多個線程,並且是線程安全的 我將每個鍵空間使用一個Session對象。

從cassandra-java-driver文檔:

會話實例是線程安全的,通常每個應用程序一個實例就足夠了。 由於一次給定的會話一次只能“登錄”到一個鍵空間中(如果查詢未明確使用完全限定的表名,則“記錄的”鍵空間是查詢所使用的鍵空間),因此創建每個鍵空間使用一個會話。 但是,查詢多個鍵空間不是必需的,因為在查詢中始終可以使用具有完全限定的表名的單個會話。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM