2013-10-26 16 views
10

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?

Trả lời

3

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ó trung tâm dữ liệu địa phương Cassandra các nút

Sau đó, bạn cần phải sử dụng DCAwareRoundRobinPolicy.

Giống như cho một ví dụ trong Astyanax khi tôi đã sử dụng trước đó, nó đã được rằng bạn cần phải sử dụng TOKEN_AWARE ...

Đó là sự thật cho người lái xe DataStax Java quá, nó được gọi là TokenAwarePolicy và có thể được sử dụng trên đầu trang của DCAwareRoundRobinPolicy được trích dẫn ở trên.

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 ..

Tôi không thể nói cho "mọi người" nhưng ngoài sự lựa chọn chính xác các chính sách cân bằng tải như mô tả ở trên, phần còn lại sẽ phụ thuộc vào môi trường nhiều nhất. Nhưng tất nhiên nếu bạn quan tâm rất nhiều về hiệu suất, bạn nên chơi với các cài đặt khác nhau từ Configuration và một số khối lượng công việc thực tế và xem liệu có điều gì đó hữu ích hay không.

+0

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

0

Thuộc tính có thể được sử dụng để hạn chế tên máy chủ lưu trữ mà bạn muốn Trình điều khiển sử dụng.

cassandra.loadbalancing.whitelistpolicy.hostnames 
Các vấn đề liên quan