- vừa được xem lúc

Tìm hiểu về consumer và consumer group trong Kafka

0 0 23

Người đăng: Open Dev

Theo Viblo Asia

Tại sao phải dùng consumer

  • Giả sử bây giờ bạn có một ứng dụng và cần đọc message từ Kafka Topic, chạy thêm một nhiều bước validations, cuối cùng lưu nó lại trên cơ sở dữ liệu. Trong trường hợp này ứng dụng của bạn cần tạo một consumer object, subscribe topic phù hợp và bắt đầu nhận message, validate sau đó ghi kết quả xuống hệ thống.
  • Nếu không sử dụng consumer thì nó vẫn hoạt động tốt một thời gian ngắn nào, nhưng nếu tỉ lệ producer nhận message vào topic ngày một tăng lên, thì lúc này ứng dụng của bạn có còn đủ sức để xử lý nữa không.
  • Nếu bạn giới hạn số lượng xử lý message, đọc dữ liệu lên rồi xử lí, lúc này bạn sẽ bị thụt lùi về phía sau khi hệ thống nhận message quá nhiều mà không xử lý đầu ra kịp dẫn đến độ trễ của hệ thống. Đặt vấn đề là hệ thống cần scale tiêu thụ message, có nhiều producer write thì lúc này cần có nhiều consumer để đọc dữ liệu.

Consumer là gì

  • Kafka consumer là phần quan trọng của consumer group, khi có nhiều consumer subscribe từ một topic và cùng chung một consumer group, mỗi consumer trong group sẽ nhận message từ các partition khác nhau trong topic.
  • Bây giờ ta có 1 topic T1 có 4 partition. Giả sử chúng ta tạo consumer C1 và chỉ có duy nhất consumer C1 group G1, và use sử dụng C1 để subscribe đến topic T1, lúc này C1 sẽ nhận tất cả message từ 4 partition.
  • Nếu chúng ta tạo consumer C2 trong group G1, mỗi consumer C1,C2 sẽ chỉ nhận message từ 2 partition ngẫu nhiên.
  • Nếu tạo 4 consumer trong G1 thì mỗi consumer sẽ read message từ 1 partition.
  • Nếu tạo consumer có số lượng nhiều hơn số partition thì một vài consumer sẽ là idle và không nhận message.
  • Cách làm này để chúng ta có thể scale khả năng read message từ topic bằng cách add nhiều consumer trong group, góp phần giúp các hoạt động có độ trễ cao xuống thấp hoặc các tính toán phức tạp của data.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Create local develop environment Lavarel by Docker (Apache version)

Repository. https://github.com/ucan-lab/docker-laravel-apache. Cách dùng.

0 0 45

- vừa được xem lúc

Xử lý Apache Access logs với LogStash trong ELK Stack

Mở đầu. Xin chào các bạn, nhân dịp đang có cơ hội được tìm hiểu về ELK Stack mình muốn chia sẻ với các bạn một số thứ mà mình mò mẫm và học được từ công nghệ đang khá hot này.

0 0 41

- vừa được xem lúc

13 mẹo bảo mật server web Apache

Chào mọi người . Chắc hẳn ai học lập trình web đều rất quen thuộc với server web Apache, nó là một máy chủ web rất phổ biến để lưu trữ các trang web của bạn trên web.

0 0 78

- vừa được xem lúc

Lỗ hổng bảo mật Log4Shell(CVE-2021-4428) của thư viện Apache Log4j2

Giới thiệu. Tóm tắt câu chuyện làm chấn động giới IT mấy ngày gần đây đó chính là, có một lỗ hổng bảo mật vô cùng nghiêm trọng liên quan đến thư viện Log4j2 được cung cấp bởi Apache khiến hacker có th

0 0 36

- vừa được xem lúc

Hướng dẫn đọc và ghi file excel trong Java sử dụng thư viện Apache POI

Excel là định dạng file rất phổ biến được tạo ra bởi Microsoft. Thông thường, các ứng dụng Java sử dụng thư viện Apache POI để đọc và ghi tập tin Excel.

0 0 35

- vừa được xem lúc

PHP websites sử dụng Docker Containers với PHP, Apache2 và MySQL

Xem lại series về các lệnh cơ bản trong docker: PHẦN 1, PHẦN 2, PHẦN 3. Docker là một nền tảng để cung cấp cách để building, deploying và running ứng dụng dễ dàng hơn bằng cách sử dụng các containers.

0 0 49