Gần đây tôi đã bắt đầu sử dụng trình điều khiển Java Datastax cho trường hợp sử dụng Cassandra của chúng tôi ... Chúng tôi sẽ sử dụng trình điều khiển Datastax Java để đọc/ghi vào Cassandra ...Cài đặt tối ưu cho trình điều khiển Java Cassandra để ghi vào trung tâm dữ liệu cục bộ chỉ
Tôi thành công có thể tạo kết nối Cassandra bằng trình điều khiển Java Datastax ... Nhưng tôi tự hỏi, có bất kỳ cài đặt nào khác mà tôi nên sử dụng trong môi trường sản xuất để có được hiệu suất tốt hơn bằng cách sử dụng trình điều khiển Java Datastax trong khi thực hiện kết nối Cassandra?
/**
* 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) {
}
}
ưu tiên hàng đầu của tôi là: -
- Lọc ra Cassandra các nút cơ sở trên trung tâm dữ liệu địa phương .. Vì vậy, trong hồ bơi kết nối nó sẽ chỉ có các nút trung tâm dữ liệu Cassandra địa phương.
- Và có được hiệu suất tốt nhất khi sử dụng trình điều khiển java Datastax với một số cài đặt nhất định.
Tôi biết nó có thể được có thể là thiết lập nhất định sẽ khác nhau trong môi trường khác nhau nhưng có thể có một số thiết lập mà tất cả mọi người phải làm theo để có được hiệu suất tối ưu trong khi thực hiện các kết nối Cassandra sử dụng driver Datastax Java ..
Giống như một ví dụ trong Astyanax khi tôi sử dụng trước đó, đó là bạn cần sử dụng TOKEN_AWARE ...
Vì vậy, cần có một số cài đặt tốt nhất hoặc được khuyến nghị trong khi sử dụng trình điều khiển java Datastax?
Trong 'PoolingOptions' Tôi không thấy phương thức setter gọi là 'setLocalDataCenter' để hạn chế kết nối tới trung tâm dữ liệu cục bộ.Khách hàng biết trung tâm dữ liệu từ nơi nó đang chạy như thế nào? – vijay