kafka-la-gi

Kafka Là Gì? Những Điều Bạn Cần Biết Về Kafka

Chia sẻ kinh nghiệm
Spread the love

Kafka là thuật ngữ khá phổ biến trong thế giới công nghệ thông tin. Hầu hết các nước lớn trên thế giới đều sử dụng Kafka trong nền tảng của mình. Vậy Kafka là gì, chúng hoạt động ra sao, hãy cùng topviecit.vn tìm hiểu ngay trong bài viết dưới đây. 

Kafka là gì?

Kafka là gì? Kafka được hiểu là nền tảng streaming phân tán, có thể mở rộng và là một sản phẩm của mã nguồn mở. Dự án Kafka đầu tiên được tạo dựng và phát triển bởi Linkedin sau đó trở thành dự án Apache mã nguồn mở vào năm 2011. Kafka được viết bằng 2 ngôn ngữ chính đó là Scala và Java. Nó được viết với mục đích cung cấp một nền tảng mà có độ trễ thấp và thông lượng cao hơn cho việc xử lý các nguồn cấp dữ liệu theo thời gian thực tế. 

Kafka là gì?
Kafka là gì?

Apache Kafka là gì?

Ngoài thắc mắc Kafka là gì? Nhiều người cũng muốn có thêm những thông tin về Kafka Apache. Theo đó, Kafka Apache là một message broker chạy trên hệ thống phân tán. Kafka được phát triển và bảo trì bởi Apache nên thường được gọi với cái tên Apache Kafka. 

Bên public dữ liệu sẽ gọi Kafka là producer và bên subcribe khi nhận dữ liệu được gọi là consumer. 

Kafka có khả năng truyền tải đi một lượng lớn nội dung trong cùng một khoảng thời gian. Trong trường hợp bên nhận chưa nhận được thì thông tin sẽ tự động lưu trữ. 

>>>Xem thêm: Web Server Là Gì? Nguyên Lý Hoạt Động Của Web Server

Cách hoạt động chính của Kafka là gì?

Kafka được xây dựng dựa trên mô hình subscribe/publish nên tương tự với mọi hệ thống message.

Những ứng dụng gửi message tới node kafka và thông báo chúng sẽ được xử lý thường được gọi là consumers. 

Những messages này gửi tới kafka node thì chúng sẽ được lưu trữ tại một khu vực được gọi là topic. Điều này giúp consumer có thể subscribe đến topic và nghe các messages. Lúc này, messages có thể là một số thông tin liên quan đến giá trị cảm biến hay hành động của người dùng,…

Topic sẽ được xem là tên danh mục mà những message được lưu trữ và đẩy vào. 

Hầu hết các topics trong Kafka có kích cỡ rất lớn, do đó bạn không nên lưu trữ toàn bộ dữ liệu của topic trên một node. Thay vào đó, hãy chia dữ liệu thành nhiều Partitions, điều này sẽ cho phép bạn thực hiện subcribe song song với topic cụ thể bằng biện pháp phân chia dữ liệu có trong một topic cụ thể nào đó. Mỗi một Partition đều sẽ được đặt trên máy riêng biệt và cho phép đọc dữ liệu song song. 

Bên cạnh đó, để gia tăng sự khả dụng của partition thì mỗi partition sẽ sở hữu giá trị replicas của riêng chúng. 

>>>Xem thêm: Design Pattern Là Gì? Những Lý Do Nên Sử Dụng Design Pattern

Các hoạt động của Kafka
Các hoạt động của Kafka

Một số khái niệm mà bạn cần nắm về Kafka

Để hiểu rõ được khái niệm Kafka là gì, những người theo lĩnh vực công nghệ, đặc biệt là người mới vào nghề nên tham khảo những khái niệm sau đây để có thể hoàn thành công việc một cách tốt hơn:

  • Producer: Kafka thực hiện phân loại, lưu message dựa theo topic sử dụng producer để thực hiện publish message vào các topic tương ứng. Lúc này, dữ liệu sẽ được gửi đến partition của topic được lưu trữ trên Broker. 
  • Consumer: Các dữ liệu khi được truyền vào Kafka dựa trên topic ngay khi cần truyền dữ liệu cho các ứng dụng khác nhau sẽ tạo ra những topic khác nhau.
  • Partition: Vị trí này là nơi những dữ liệu của 1 topic đã lưu trữ xuất hiện. Chúng thường sẽ bao gồm 1 hoặc nhiều partition. Trong mỗi partition, dữ liệu sẽ được lưu trữ cố định và được gán cho một ID gọi là offset. Với một Kafka cluster thì một partition cho phép sao chép ra nhiều bản. Trong đó, bản leader sẽ có nhiệm vụ đọc dữ liệu, các bản còn lại trong vai trò là follower. Đối với trường hợp bản leader này bị lỗi thì bản follower sẽ trở thành bản leader thay thế. Nếu như bạn muốn dùng nhiều consumer song song cùng lúc thì buộc topic đó phải có nhiều partition. 
  • Broker: Kafka cluster được xem là một set server hay còn gọi là 1 broker. 
  • Zookeeper: Được dùng với mục đích bố trí cung như quản lý lại các broker. 

>>>Xem thêm: Unit Test Là Gì? Các Khái Niệm Cần Biết Khi Sử Dụng Unit Test

Ứng dụng của Kafka là gì?

Dưới đây là một số ứng dụng chính của Kafka mà bạn có thể tham khảo

Stream processing

Đây là ứng dụng đầu tiên, quan trọng nhất của Kafka. Đê thực hiện được ứng dụng này yêu cầu người dùng phải phân tích luồng dữ liệu bởi tốc độ cao. Nếu bạn muốn phân tích hành vi và xem sản phẩm của người dùng thì cần phải lưu trữ lại dưới dạng dữ liệu thô như: click chuột, đơn hàng. 

Hệ thống IoT

IoT hay Internet of Things đã cho phép thiết bị gửi những dữ liệu đã được thu thập được vào hệ thống máy chủ. Cũng chính bởi vậy, bạn hoàn toàn có thể sử dụng Kafka để nhận các dữ liệu này thay cho trước đây tự phát triển API. Dữ liệu thu thập bởi thiết bị có thể là là khối lượng dữ liệu lớn nên bạn cần yêu cầu xử lý cũng như đáp ứng trong real-time. 

Một số khái niệm về Kafka
Một số khái niệm về Kafka

Phân tích sự kiện và log

Đăng nhập trong quá trình hệ thống đang chạy có vai trò rất quan trọng đối với việc bảo trì. Nếu người dùng có nhu cầu phân tích các log thì nên đẩy các dữ liệu log vào Kafka như vậy sẽ dễ dàng hơn rất nhiều. . 

Hỗ trợ chuyển đổi ngôn ngữ lập trình

Ứng dụng này của Kafka cho phép chuyển đổi ngôn ngữ lập trình từ cấp thấp sang cấp cao hơn. Trong nhiều trường hợp, giải pháp về shared memory không thể giúp bạn tích hợp 2 ngôn ngữ lập trình. Thay vào đó, bạn có thể tiến hành đẩy kết quả dữ liệu của chương trình viết vào Kafka. Tiếp theo là sử dụng chương trình muốn chuyển đổi để lắng nghe topic rồi thực hiện phân tích và xử lý trên dữ liệu tương ứng. 

Trên đây là một số thông tin về Kafka là gì và một số hoạt động chính của Kafka trong lập trình, hy vọng đã mang đến cho bạn những kiến thức thực sự hữu ích. 

>>>Xem thêm: Elasticsearch Là Gì? Tìm Hiểu Về Ưu Nhược Điểm Của ES

Hình ảnh: Sưu tầm

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *