:quality(75)/2024_2_5_638426886915131643_kafka-la-gi.jpg)
Kafka là gì? Tìm hiểu về cách thức Kafka hoạt động và những lợi ích mà cách tiếp cận của Kafka mang lại
Bạn đã từng nghe qua khái niệm Kafka chưa? Kafka là gì? Kafka được dùng để làm gì và hoạt động ra sao? Tất tần tật những thông tin về Kafka sẽ được FPT Shop giải đáp ngay trong bài viết hôm nay. Mời bạn cùng theo dõi để hiểu rõ hơn về thuật ngữ thú vị này nhé!
Kafka là gì? Đây là thắc mắc của rất nhiều người. Nếu bạn quan tâm đến lĩnh vực điện toán đám mây và dữ liệu thì ắt hẳn nội dung này sẽ rất bổ ích. Cùng khám phá những thông tin về Kafka ngay sau đây.
Kafka là gì?
Apache Kafka là kho dữ liệu phân tán được tối ưu hoá để thu nạp và xử lý các dữ liệu truyền phát theo thời gian thực. Dữ liệu truyền phát là dữ liệu được tạo ra liên tục từ rất nhiều nguồn dữ liệu khác nhau, các nguồn này thường gửi những bản ghi dữ liệu đồng thời. Nền tảng truyền phát cần phải xử lý luồng dữ liệu liên tục này và xử lý dữ liệu theo trình tự, mức độ tăng dần.

Kafka cung cấp 3 chức năng chính như sau:
- Xuất bản và đăng ký những luồng bản ghi.
- Lưu trữ hiệu quả những luồng bản ghi theo thứ tự tạo bản ghi.
- Xử lý những luồng bản ghi trong thời gian thực.
Kafka chủ yếu được sử dụng để xây dựng những quy trình dữ liệu truyền phát trong thời gian thực và những ứng dụng thích ứng với nguồn dữ liệu đó. Kafka kết hợp với nhắn tin, lưu trữ và xử lý luồng nhằm hỗ trợ hoạt động lưu trữ, phân tích dữ liệu lịch sử lẫn dữ liệu trong thời gian thực.
Kafka được dùng để làm gì?

Mục đích người ta sử dụng Kafka là gì? Kafka được sử dụng để xây dựng những quy trình dữ liệu truyền phát trong thời gian thực và những ứng dụng truyền phát trong thời gian thực. Quy trình dữ liệu sẽ xử lý và di chuyển dữ liệu theo cách đáng tin cậy từ hệ thống này sang hệ thống khác. Ví dụ: Nếu bạn muốn tạo ra một quy trình thu thập dữ liệu hoạt động của người dùng để theo dõi cách mà mọi người sử dụng trang web của bạn trong thời gian thực, Kafka sẽ được dùng để thu thập và lưu trữ dữ liệu truyền phát, đồng thời phục vụ những lần đọc cho những ứng dụng cấp nguồn. Kafka cũng thường được sử dụng giống như một trình truyền tải thông điệp, là nền tảng xử lý và làm trung gian giao tiếp của hai ứng dụng.
Cách thức hoạt động của Kafka

Kafka kết hợp 2 mô hình nhắn tin, hàng đợi và xuất bản - đăng ký, nhằm cung cấp các lợi ích chính của mỗi mô hình cho người tiêu dùng. Hàng đợi cho phép xử lý dữ liệu được phân phối trên nhiều phiên bản người dùng, giúp dữ liệu có khả năng mở rộng cao. Tuy nhiên thì hàng đợi truyền thống không dành cho nhiều bên đăng ký nhận. Cách tiếp cận xuất bản - đăng ký dành cho nhiều bên đăng ký nhận, nhưng mọi tin nhắn đi đến mọi bên đăng ký nhận nên không thể được dùng để phân phối công việc trên nhiều quy trình lao động. Kafka sử dụng mô hình bản ghi phân vùng để ghép 2 giải pháp này lại. Bản ghi là một chuỗi hồ sơ có thứ tự và chúng được chia thành các phân đoạn hoặc phân vùng, tương ứng với những bên đăng ký nhận khác nhau. Điều này có nghĩa là có thể sẽ có nhiều bên đăng ký nhận cho một chủ đề và mỗi bên được gán một phân vùng để cho phép khả năng điều chỉnh quy mô cao hơn. Cuối cùng, mô hình của Kafka cung cấp khả năng phát lại, cho phép nhiều ứng dụng độc lập đọc từ những luồng dữ liệu hoạt động độc lập với tốc độ riêng của luồng dữ liệu.
Tạo hàng đợi

Xuất bản - đăng ký

Những lợi ích mà cách tiếp cận của Kafka mang lại
Cùng tìm hiểu lợi ích của Kafka là gì nhé!
Khả năng mở rộng
Mô hình bản ghi phân vùng của Kafka cho phép dữ liệu được phân phối trên rất nhiều máy chủ, giúp dữ liệu mở rộng vượt quá những gì phù hợp với duy nhất một máy chủ.
Nhanh
Kafka tách những luồng dữ liệu nên có độ trễ thấp, làm cho luồng trở nên cực kỳ nhanh.
Độ bền cao
Phân vùng được phân phối, sao chép trên nhiều máy chủ và dữ liệu được ghi vào đĩa. Việc này giúp bảo vệ khỏi lỗi máy chủ, giúp dữ liệu có dung sai rất cao và rất bền.
Kiến trúc Kafka tích hợp với các mô hình khác nhau ra sao?
Kafka khắc phục 2 mô hình khác nhau bằng cách xuất bản hồ sơ cho những chủ đề khác nhau. Mỗi chủ đề có một bản ghi được phân vùng, đó là bản ghi cam kết có cấu trúc theo dõi mọi hồ sơ theo thứ tự và thêm những hồ sơ mới trong thời gian thực. Những phân vùng này được phân phối và sao chép trên nhiều máy chủ, từ đó giúp nâng cao khả năng điều chỉnh quy mô, tính song song và dung sai. Mỗi người tiêu dùng được gán một phân vùng trong chủ đề và cho phép nhiều bên đăng ký nhận trong khi vẫn duy trì thứ tự dữ liệu. Bằng việc kết hợp những mô hình tin nhắn này, Kafka mang lại lợi ích của cả hai. Kafka cũng hoạt động giống như một hệ thống lưu trữ có khả năng mở rộng và có dung sai cao bằng việc ghi và sao chép mọi dữ liệu vào đĩa. Theo mặc định, Kafka sẽ giữ dữ liệu được lưu trữ trên đĩa cho đến khi nào hết dung lượng, tuy nhiên người dùng cũng có thể đặt giới hạn lưu giữ.
Kafka có 4 API:
- API nhà sản xuất: Được dùng để xuất bản một luồng hồ sơ sang chủ đề Kafka.
- API người tiêu dùng: Được dùng để đăng ký những chủ đề và xử lý luồng hồ sơ của chủ đề.
- API luồng: Cho phép các ứng dụng hoạt động giống như bộ xử lý luồng, nhận luồng đầu vào từ (các) chủ đề và chuyển đổi chúng thành luồng đầu ra đi vào (các) chủ đề đầu ra khác nhau.
- API bộ kết nối: Cho phép người dùng tự động hoá liền mạch việc bổ sung một ứng dụng hay hệ thống dữ liệu khác vào những chủ đề Kafka hiện tại của họ.
Sự khác biệt giữa Apache Kafka và RabbitMQ
RabbitMQ là trình truyền tải thông điệp mã nguồn mở dùng phương pháp tiếp cận hàng đợi nhắn tin. Các hàng đợi được trải rộng trên một cụm các nút, được sao chép tuỳ chọn, với mỗi tin nhắn chỉ được gửi tới một người tiêu dùng duy nhất.

|
Đặc điểm |
Apache Kafka |
RabbitMQ |
|
Kiến trúc |
Sử dụng mô hình bản ghi phân vùng, kết hợp những phương pháp tiếp cận hàng đợi nhắn tin và xuất bản đăng ký. |
Sử dụng hàng đợi nhắn tin. |
|
Khả năng điều chỉnh quy mô |
Cung cấp khả năng điều chỉnh quy mô bằng việc cho phép phân vùng được phân phối trên những máy chủ khác nhau. |
Tăng số lượng người tiêu dùng vào hàng đợi nhằm tăng quy mô theo phiên bản cho việc xử lý giữa những người tiêu dùng cạnh tranh. |
|
Lưu giữ tin nhắn |
Dựa trên chính sách, ví dụ: Tin nhắn có thể được lưu trữ trong vòng 1 ngày. Người dùng có thể cấu hình cửa sổ lưu trữ này. |
Dựa trên xác nhận, nghĩa là tin nhắn sẽ bị xoá khi được tiêu thụ. |
|
Nhiều người tiêu dùng |
Nhiều người tiêu dùng có thể cùng đăng ký một chủ đề, vì Kafka cho phép cùng một tin nhắn được phát lại trong khoảng thời gian nhất định. |
Nhiều người tiêu dùng không thể nhận được cùng một tin nhắn, vì tin nhắn sẽ bị xoá khi được tiêu thụ. |
|
Sao chép |
Các chủ đề được tự động sao chép, tuy nhiên người dùng có thể định cấu hình thủ công để các chủ đề không được sao chép. |
Tin nhắn không được sao chép tự động, tuy nhiên người dùng có thể định cấu hình thủ công để các tin nhắn được sao chép. |
|
Thứ tự thông điệp |
Mỗi người tiêu dùng nhận thông tin theo thứ tự bởi vì kiến trúc bản ghi được phân vùng. |
Tin nhắn được gửi đến người dùng theo thứ tự họ đến hàng đợi. Nếu xuất hiện những người tiêu dùng cạnh tranh thì mỗi người tiêu dùng sẽ xử lý một tập hợp con của tin nhắn ấy. |
|
Giao thức |
Sử dụng giao thức nhị phân qua TCP. |
Giao thức hàng đợi nhắn tin nâng cao (AMQP) với sự hỗ trợ thông qua những phần bổ trợ: STOMP, MQTT. |
Tạm kết
Trên đây là câu trả lời cho câu hỏi “Kafka là gì?” cùng với những thông tin về cách thức hoạt động và lợi ích của Kafka. Hy vọng rằng bạn đọc đã có cái nhìn rõ ràng về thuật ngữ Kafka và biết cách ứng dụng nó hiệu quả.
Nâng tầm không gian làm việc của bạn bằng dàn PC có thiết kế ấn tượng và hiệu năng cao. Xem ngay sản phẩm chính hãng tại FPT Shop:
Xem thêm:
:quality(75)/estore-v2/img/fptshop-logo.png)