Giới thiệu về Hệ số nhân bản và Mức độ nhất quán của Cassandra

Edge for Private Cloud phiên bản 4.17.09

Giới thiệu về hệ số sao chép Cassandra

Cassandra lưu trữ bản sao dữ liệu trên nhiều nút để đảm bảo độ tin cậy và khả năng chịu lỗi. Chiến lược sao chép cho mỗi không gian khoá Edge xác định các nút nơi đặt bản sao.

Tổng số bản sao của một không gian khoá trên cụm Cassandra được gọi là hệ số sao chép của không gian khoá. Hệ số sao chép là 1 có nghĩa là chỉ có một bản sao của mỗi hàng trong cụm Cassandra. Hệ số sao chép là 2 có nghĩa là có hai bản sao của mỗi hàng, trong đó mỗi bản sao nằm trên một nút khác nhau. Tất cả bản sao đều quan trọng như nhau; không có bản sao chính hay bản sao gốc.

Trong một hệ thống sản xuất có từ 3 nút Cassandra trở lên trong mỗi trung tâm dữ liệu, hệ số sao chép mặc định cho không gian khoá Edge là 3. Theo nguyên tắc chung, hệ số sao chép không được vượt quá số lượng nút Cassandra trong cụm.

Hãy sử dụng quy trình sau để xem giản đồ Cassandra. Giản đồ này cho biết hệ số nhân bản cho từng không gian phím Edge:

  1. Đăng nhập vào một nút Cassandra.
  2. Chạy lệnh sau:
    > /opt/apigee/apigee-cassandra/bin/cassandra-cli -h $(hostname -i) <<< "show schema;"

    Trong đó $(hostname -i) phân giải đến địa chỉ IP của nút Cassandra. Hoặc bạn có thể thay thế $(hostname -i) bằng địa chỉ IP của nút.

Đối với mỗi không gian khoá, bạn sẽ thấy kết quả ở dạng:

create keyspace kms
  with placement_strategy = 'NetworkTopologyStrategy'
  and strategy_options = {dc-1 : 3}
  and durable_writes = true;

Bạn có thể thấy rằng đối với trung tâm dữ liệu 1, dc-1, hệ số sao chép mặc định cho không gian khoá kms là 3 đối với một lượt cài đặt có 3 nút Cassandra.

Nếu bạn thêm các nút Cassandra khác vào cụm, thì hệ số sao chép mặc định sẽ không bị ảnh hưởng.

Ví dụ: nếu tăng số lượng nút Cassandra lên 6 nhưng để hệ số sao chép ở mức 3, thì bạn không đảm bảo rằng tất cả nút Cassandra đều có bản sao của tất cả dữ liệu. Nếu một nút ngừng hoạt động, thì hệ số sao chép càng cao thì khả năng dữ liệu trên nút đó tồn tại trên một trong các nút còn lại càng cao. Nhược điểm của hệ số sao chép cao hơn là độ trễ khi ghi dữ liệu sẽ tăng lên.

Giới thiệu về mức độ nhất quán của Cassandra

Cấp độ nhất quán của Cassandra được xác định là số lượng tối thiểu các nút Cassandra phải xác nhận một thao tác đọc hoặc ghi trước khi thao tác đó được coi là thành công. Bạn có thể chỉ định các mức độ nhất quán khác nhau cho các không gian phím khác nhau của Edge.

Khi kết nối với Cassandra để thực hiện các thao tác đọc và ghi, các nút Trình xử lý thông báo và Máy chủ quản lý thường sử dụng giá trị Cassandra là LOCAL_QUORUM để chỉ định mức độ nhất quán cho một không gian khoá. Tuy nhiên, một số không gian phím được xác định để sử dụng mức độ nhất quán là 1.

Cách tính giá trị của LOCAL_QUORUM cho một trung tâm dữ liệu là:

LOCAL_QUORUM = (replication_factor/2) + 1 

Như mô tả ở trên, hệ số sao chép mặc định cho môi trường sản xuất Edge có 3 nút Cassandra là 3. Do đó, giá trị mặc định của LOCAL_QUORUM = (3/2) +1 = 2 (giá trị được làm tròn xuống một số nguyên).

Với LOCAL_QUORUM = 2, ít nhất 2 trong số 3 nút Cassandra trong trung tâm dữ liệu phải phản hồi thao tác đọc/ghi để thao tác đó thành công. Đối với cụm Cassandra gồm 3 nút, cụm này có thể chấp nhận một nút bị lỗi trên mỗi trung tâm dữ liệu.

Bằng cách chỉ định cấp độ nhất quán là LOCAL_QUORUM, Edge tránh được độ trễ cần thiết khi xác thực các hoạt động trên nhiều trung tâm dữ liệu. Nếu không gian khoá sử dụng giá trị Cassandra QUORUM làm cấp độ nhất quán, thì các thao tác đọc/ghi sẽ phải được xác thực trên tất cả các trung tâm dữ liệu.

Để xem mức độ nhất quán mà các nút Edge Message Processor hoặc Management Server (Máy chủ quản lý) sử dụng, hãy làm như sau:

  1. Đăng nhập vào nút Trình xử lý thông báo.
  2. Thay đổi thành thư mục /opt/apigee/edge-message-processor/conf:
    > cd /opt/apigee/edge-message-processor/conf
  3. Để đảm bảo tính nhất quán khi ghi:
    > grep -ri "write.consistencylevel" *
  4. Để đảm bảo tính nhất quán khi đọc:
    > grep -ri "read.consistencylevel" *
  5. Đăng nhập vào nút Máy chủ quản lý.
  6. Thay đổi thành thư mục /opt/apigee/edge-management-server/conf:
    > cd /opt/apigee/edge-management-server/conf
  7. Lặp lại bước 3 và 4.

Nếu bạn thêm các nút Cassandra khác vào cụm, thì mức độ nhất quán sẽ không bị ảnh hưởng.