Giới thiệu về hệ số sao chép Cassandra và mức độ nhất quán

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

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

Tổng số bản sao của một không gian phím trên một cụm Cassandra được gọi là hệ số sao chép của không gian phím. Hệ số nhân bản 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 của 2 nghĩa là có 2 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ả các bản sao đều quan trọng như nhau; không có bản sao chính hay bản sao chính.

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 một 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ố 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 của mỗi không gian khoá Edge:

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

    Trong trường hợp $(hostname -i) phân giải thành địa chỉ IP của nút Cassandra. Bạn cũng có thể thay thế $(hostname -i) bằng địa chỉ IP của nút.

Đối với mỗi không gian phím, 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 khi cài đặt với 3 nút Cassandra.

Nếu bạn thêm các nút Cassandra bổ sung 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ố nút Cassandra lên 6 nút, nhưng để hệ số nhân bản là 3, thì bạn không đảm bảo rằng tất cả các nút Cassandra đều có bản sao của mọi dữ liệu. Nếu một nút bị hỏng, hệ số sao chép càng cao thì xác suất dữ liệu trên nút đó càng tồn tại trên một trong các nút còn lại. Nhược điểm của hệ số nhân bản cao hơn là làm tăng độ trễ khi ghi dữ liệu.

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

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

Khi kết nối với Cassandra cho các thao tác đọc và ghi, các nút Bộ xử lý thông báo và Máy chủ quản lý thường sử dụng giá trị Cassandra của 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à một.

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ị này đượ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. Do đó, đối với cụm Cassandra ba nút, cụm Cassandra có thể chấp nhận một nút ở trên mỗi trung tâm dữ liệu.

Bằng cách chỉ định mức độ nhất quán là LOCAL_QUORUM, Edge có thể tránh được độ trễ cần thiết bằng cách xác thực các hoạt động trên nhiều trung tâm dữ liệu. Nếu một không gian phím sử dụng giá trị QUORUM Cassandra làm mức độ 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.

Cách xem mức độ nhất quán mà các nút Trình xử lý thông báo Edge hoặc Máy chủ quản lý sử dụng:

  1. Đăng nhập vào nút Bộ xử lý thông báo.
  2. Thay đổi sang 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 sang thư mục /opt/apigee/edge-management-server/conf:
    cd /opt/apigee/edge-management-server/conf
  7. Lặp lại các bước 3 và 4.

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