Cassandra ArchiYếu tố kiến ​​trúc & nhân rộng

Cassandra được thiết kế để xử lý Dữ Liệu Lớn.. CassandraTính năng chính của nó là lưu trữ dữ liệu trên nhiều nút mà không có điểm lỗi nào.

Nguyên nhân của loại này CassandraKiến trúc của 's là lỗi phần cứng có thể xảy ra bất cứ lúc nào. Bất kỳ nút nào cũng có thể ngừng hoạt động. Trong trường hợp lỗi, dữ liệu được lưu trữ trong nút khác có thể được sử dụng. Do đó, Cassandra được thiết kế theo kiến ​​trúc phân tán.

Cassandra lưu trữ dữ liệu trên các nút khác nhau với kiến ​​trúc phân tán ngang hàng.

Tất cả các nút trao đổi thông tin với nhau bằng cách sử dụng Giao thức tin đồn. Chuyện phiếm là một giao thức trong Cassandra qua đó các nút có thể giao tiếp với nhau.

Các thành phần của Cassandra Archikiến trúc

Có các thành phần sau trong Cassandra Archikiến trúc:

Cassandra Archikiến trúc
Cassandra Archisơ đồ kiến ​​trúc

Node

Nút là nơi lưu trữ dữ liệu. Nó là thành phần cơ bản của Cassandra.

Trung tâm dữ liệu

Một tập hợp các nút được gọi là trung tâm dữ liệu. Nhiều nút được phân loại là trung tâm dữ liệu.

Cluster

Cụm là tập hợp của nhiều trung tâm dữ liệu.

Nhật ký cam kết

Mọi thao tác ghi đều được ghi vào Nhật ký cam kết. Nhật ký cam kết được sử dụng để khôi phục sự cố.

bảng ghi nhớ

Sau khi dữ liệu được ghi vào Nhật ký cam kết, dữ liệu được ghi vào bảng Mem. Dữ liệu được ghi tạm thời vào bảng Mem.

SSBảng

Khi bảng Mem đạt đến một ngưỡng nhất định, dữ liệu sẽ được chuyển sang tệp đĩa SSTable.

Sao chép dữ liệu trong Cassandra

Vì sự cố phần cứng có thể xảy ra hoặc liên kết có thể ngừng hoạt động bất kỳ lúc nào trong quá trình xử lý dữ liệu nên cần có giải pháp để cung cấp bản sao lưu khi sự cố xảy ra. Vì vậy, dữ liệu được sao chép để đảm bảo không có điểm lỗi nào.

Cassandra đặt bản sao dữ liệu trên các nút khác nhau dựa trên hai yếu tố này.

  • Nơi đặt bản sao tiếp theo được xác định bởi Chiến lược nhân rộng.
  • Trong khi tổng số bản sao được đặt trên các nút khác nhau được xác định bởi Yếu tố sao chép.

Một yếu tố sao chép có nghĩa là chỉ có một bản sao dữ liệu duy nhất trong khi ba yếu tố sao chép có nghĩa là có ba bản sao dữ liệu trên ba nút khác nhau.

Để đảm bảo không có điểm thất bại duy nhất, hệ số nhân rộng phải là ba.

Có hai loại chiến lược sao chép trong Cassandra.

Chiến lược đơn giản trong Cassandra

Chiến lược đơn giản được sử dụng khi bạn chỉ có một trung tâm dữ liệu. SimpleStrategy đặt bản sao đầu tiên vào nút được phân vùng chọn. Sau đó, các bản sao còn lại được đặt theo chiều kim đồng hồ trong vòng Node.

Đây là hình ảnh minh họa của SimpleStrategy:

Chiến lược đơn giản trong Cassandra
Chiến lược đơn giản trong Cassandra

MạngTopologyChiến lược trong Cassandra

MạngTopologyChiến lược được sử dụng khi bạn có nhiều hơn hai trung tâm dữ liệu. Trong NetworkTopologyStrategy, các bản sao được thiết lập riêng cho từng trung tâm dữ liệu. NetworkTopologyStrategy đặt các bản sao theo chiều kim đồng hồ trong vòng cho đến khi đạt đến nút đầu tiên trong giá đỡ khác. Chiến lược này cố gắng đặt các bản sao trên các giá đỡ khác nhau trong cùng một trung tâm dữ liệu.

Điều này là do đôi khi có thể xảy ra lỗi hoặc sự cố ở giá đỡ. Sau đó, bản sao trên các nút khác có thể cung cấp dữ liệu.

Dưới đây là hình ảnh minh họa của chiến lược cấu trúc liên kết Mạng:

MạngTopologyChiến lược trong Cassandra
MạngTopologyChiến lược trong Cassandra

Viết Operaquan tâm đến Cassandra

Điều phối viên gửi yêu cầu ghi tới bản sao. Nếu tất cả các bản sao đều hoạt động, chúng sẽ nhận được yêu cầu ghi bất kể mức độ nhất quán của chúng như thế nào.

Mức độ nhất quán xác định có bao nhiêu nút sẽ phản hồi lại với xác nhận thành công.

Nút sẽ phản hồi lại với xác nhận thành công nếu dữ liệu được ghi thành công vào nhật ký cam kết và memTable.

Ví dụ: trong một trung tâm dữ liệu có hệ số sao chép bằng ba, ba bản sao sẽ nhận được yêu cầu ghi. Nếu mức độ nhất quán là một thì chỉ có một bản sao sẽ phản hồi lại với xác nhận thành công và hai bản sao còn lại sẽ không hoạt động.

Giả sử nếu hai bản sao còn lại bị mất dữ liệu do nút bị hỏng hoặc một số vấn đề khác, Cassandra sẽ làm cho hàng ổn định nhờ cơ chế sửa chữa tích hợp sẵn trong Cassandra.

Ở đây nó được giải thích, quá trình ghi diễn ra như thế nào trong Cassandra,

  1. Khi yêu cầu ghi đến nút, trước hết, nó sẽ ghi vào nhật ký cam kết.
  2. Sau đó Cassandra ghi dữ liệu vào bảng mem. Dữ liệu được ghi trong bảng ghi nhớ trên mỗi yêu cầu ghi cũng được ghi riêng vào nhật ký cam kết. Bảng ghi nhớ là dữ liệu được lưu trữ tạm thời trong bộ nhớ trong khi Nhật ký cam kết ghi lại các bản ghi giao dịch cho mục đích sao lưu.
  3. Khi bảng mem đầy, dữ liệu sẽ được chuyển vào tệp dữ liệu SSTable.
Viết Operaquan tâm đến Cassandra
Viết Operaquan tâm đến Cassandra

Đọc Operaquan tâm đến Cassandra

Có ba loại yêu cầu đọc mà điều phối viên gửi đến bản sao.

  1. Yêu cầu trực tiếp
  2. Yêu cầu thông báo
  3. Đọc yêu cầu sửa chữa

Điều phối viên gửi yêu cầu trực tiếp đến một trong các bản sao. Sau đó, điều phối viên gửi yêu cầu tổng hợp tới số lượng bản sao được chỉ định bởi mức độ nhất quán và kiểm tra xem dữ liệu trả về có phải là dữ liệu cập nhật hay không.

Sau đó, điều phối viên gửi yêu cầu thông báo tới tất cả các bản sao còn lại. Nếu bất kỳ nút nào cung cấp giá trị lỗi thời, yêu cầu sửa chữa đọc nền sẽ cập nhật dữ liệu đó. Quá trình này được gọi là cơ chế sửa chữa đọc.

Tổng kết

  • Hướng dẫn này giải thích Cassandra kiến trúc nội bộ và cách Cassandra sao chép, ghi và đọc dữ liệu ở các giai đoạn khác nhau.
  • Ngoài ra, ở đây nó giải thích về cách Cassandra duy trì mức độ nhất quán trong suốt quá trình.
  • Các thành phần của Cassandra Archikiến trúc: Nút, Trung tâm dữ liệu, Cluster, Nhật ký cam kết, bảng ghi nhớ, SSTable
  • Một yếu tố sao chép có nghĩa là chỉ có một bản sao dữ liệu duy nhất trong khi ba yếu tố sao chép có nghĩa là có ba bản sao dữ liệu trên ba nút khác nhau.
  • SimpleStrategy được sử dụng khi bạn chỉ có một trung tâm dữ liệu.
  • NetworkTopologyStrategy được sử dụng khi bạn có nhiều hơn hai trung tâm dữ liệu.