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

Edge for Private Cloud v4.18.05

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 chính.

Trong một hệ thống sản xuất có 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, trong đó cho thấy hệ số sao chép cho từng không gian khoá 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 thành đị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 cấp độ nhất quán khác nhau cho các không gian khoá Edge khác nhau.

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à Trình quản lý máy chủ thường sử dụng giá trị Cassandra là LOCAL_QUORUM để chỉ định mức độ nhất quán cho không gian khoá. Tuy nhiên, một số không gian khoá được xác định để sử dụng cấp độ 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 hai trong số ba nút Cassandra trong trung tâm dữ liệu phải phản hồi một 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ịu được 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 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 không gian khoá sử dụng giá trị QUORUM của Cassandra 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.

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

  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.