我最近開始使用Datastax Java驅動程序用於我們的Cassandra用例...我們將使用Datastax Java驅動程序讀取/寫入Cassandra ...Cassandra Java驅動程序只寫入本地數據中心的最佳設置
我成功地使用Datastax Java驅動程序創建Cassandra連接......但我想知道,是否有任何其他設置,我應該在生產環境中使用Datastax Java驅動程序來獲得更好的性能,同時建立連接卡桑德拉?
/**
* Creating Cassandra connection using Datastax driver
*
*/
private DatastaxConnection() {
try{
builder = Cluster.builder();
builder.addContactPoint("some-node");
// Can anybody explain me what does below piece of code do?
builder.poolingOptions().setCoreConnectionsPerHost(
HostDistance.LOCAL,
builder.poolingOptions().getMaxConnectionsPerHost(HostDistance.LOCAL));
// And also what does below piece of code is doing?
cluster = builder
.withRetryPolicy(DowngradingConsistencyRetryPolicy.INSTANCE)
.withReconnectionPolicy(new ConstantReconnectionPolicy(100L))
.build();
StringBuilder s = new StringBuilder();
Set<Host> allHosts = cluster.getMetadata().getAllHosts();
for (Host h : allHosts) {
s.append("[");
s.append(h.getDatacenter());
s.append("-");
s.append(h.getRack());
s.append("-");
s.append(h.getAddress());
s.append("]");
}
System.out.println("Cassandra Cluster: " + s.toString());
session = cluster.connect("testdatastaxks");
} catch (NoHostAvailableException e) {
} catch (Exception e) {
}
}
我的首要任務是: - 因此,在連接池只會有本地數據中心節點卡桑德拉
- 過濾掉卡桑德拉本地數據中心節點的基礎..。
- 在使用Datastax java驅動程序並進行某些特定設置時可以獲得最佳性能。
我知道有可能是某些設置將在不同的環境不同,但可能有一些設置,每個人都必須遵循,以獲得最佳的性能,同時使利用Datastax Java驅動程序卡桑德拉連接..
以前我使用過的Astyanax中的一個示例,就是您需要使用TOKEN_AWARE ...
因此,在使用Datastax java驅動程序時應該有一些最佳設置或建議使用?
在'PoolingOptions'中,我看不到一個名爲'setLocalDataCenter'的setter方法來限制連接到本地數據中心。客戶如何從數據中心運行的地方知道數據中心? – vijay