0
0
Lập trình
Sơn Tùng Lê
Sơn Tùng Lê103931498422911686980

Giải pháp lưu trữ phân tầng trong Kafka: Tối ưu hóa hiệu suất và tiết kiệm chi phí

Đăng vào 5 ngày trước

• 3 phút đọc

Chủ đề:

apache kafkakafka

1. Giới thiệu về Lưu trữ Phân tầng trong Kafka

Apache Kafka là một nền tảng xử lý stream mạnh mẽ, nhưng việc lưu trữ dữ liệu trên Kafka cũng phải đối mặt với những thách thức đáng kể. Đơn vị lưu trữ cơ bản của Kafka là các partition replicas, và kích thước của mỗi partition bị giới hạn bởi dung lượng ổ đĩa trên một mount point duy nhất.

Khi cấu hình Kafka, người dùng sẽ định nghĩa log.dirs, đây là danh sách các thư mục nơi các partition được lưu trữ. Cuối năm 2018, cộng đồng Apache Kafka đã khởi động một dự án để phát triển giải pháp lưu trữ phân tầng, nhằm mở rộng khả năng lưu trữ và giảm chi phí, với dự kiến phát hành trong phiên bản 3.0.

Dưới đây là một số động lực dẫn đến sự phát triển của giải pháp lưu trữ phân tầng:

  • Hạn chế về dung lượng lưu trữ trong một partition có thể ảnh hưởng đến thời gian duy trì và số lượng partition.
  • Chi phí lưu trữ tăng cao khi phải lựa chọn ổ cứng lớn hơn hoặc mở rộng cluster không cần thiết.
  • Kích thước partition ảnh hưởng đến thời gian di chuyển dữ liệu giữa các broker trong quá trình mở rộng hoặc thu hẹp cluster.

2. Giải pháp Lưu trữ Phân tầng

Giải pháp lưu trữ phân tầng chia hệ thống lưu trữ của Kafka thành hai tầng: local tierremote tier. Local tier sử dụng các ổ cứng trên broker để lưu trữ các log còn remote tier sử dụng các hệ thống lưu trữ như HDFS hoặc S3 cho các log đã hoàn tất.

Người dùng có thể thiết lập các chính sách lưu trữ khác nhau cho mỗi tầng. Vì local tier thường tốn kém hơn, thời gian lưu trữ tại đây thường ngắn trong khi remote tier cho phép thời gian lưu trữ lâu dài hơn. Local storage có độ trễ thấp, thích hợp cho các ứng dụng cần phản hồi nhanh, trong khi dữ liệu cũ hơn có thể được truy cập từ remote tier.

Kiến trúc hai tầng này cho phép mở rộng lưu trữ mà không làm tăng tải trên bộ nhớ và CPU của cụm Kafka, đồng thời giảm thiểu dữ liệu cần sao chép durante quá trình phục hồi. Điều này giúp tiết kiệm chi phí và đơn giản hóa quy trình quản lý dữ liệu. Remote tier cho phép bạn lưu trữ dữ liệu lâu dài mà không phải lo lắng về việc mở rộng cluster.

Thông tin chi tiết về thiết kế lưu trữ phân tầng được nêu rõ trong KIP-405, với việc bổ sung RemoteLogManager và cải tiến các chức năng hiện có.

Một số tác động đến hiệu suất của giải pháp này cũng đã được ghi nhận. Cụ thể:

  • Khi throughput tăng, độ trễ tăng nhẹ nhưng vẫn trong khoảng chấp nhận được.
  • Việc đọc dữ liệu cũ từ remote tier có sự cải thiện rõ rệt về độ trễ so với việc không sử dụng lưu trữ phân tầng.

3. Kết nối và Thảo luận

Nếu bạn có nhu cầu trao đổi thêm về vấn đề lưu trữ dữ liệu trong Kafka hoặc các ứng dụng của nó, hãy kết nối với tôi qua LinkedIn và Facebook:

Rất mong được kết nối và chia sẻ thêm thông tin!
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào