Tổng quan về Producer trong Kafka

Có rất nhiều lý do để một ứng dụng cần sử dụng đến Kafka, và write message vào hệ thống: recording hoặc động của user cho kiểm kiểm toán hoặc phân tích , recording metrics, store log message, recording thông tin từ điện thoại, giao tiếp giữa các ứng dụng với nhau. Đa dạng những

  • Có rất nhiều lý do để một ứng dụng cần sử dụng đến Kafka, và write message vào hệ thống: recording hoặc động của user cho kiểm kiểm toán hoặc phân tích , recording metrics, store log message, recording thông tin từ điện thoại, giao tiếp giữa các ứng dụng với nhau.
  • Đa dạng những trường hợp khác nhau cũng sẽ có nhiều yêu cầu khác nhau, mỗi message hoặc cũng có thể chấp nhận được cho sự mất mát data, cũng như duplication message.
  • Trong giao dịch thẻ tín dụng hoặc các giao dịch chuyển tiền, sẽ không bao giờ xảy ra trường hợp mất message hoặc duplication. Độ trễ có thể thấp nhưng không quá 500ms vẫn có thể chấp nhận được và thông lượng xử lý. Ví dụ chúng ta mong muốn 1 giây có thể xử lý khoảng 1 triệu message.
  • Trong một số trường hợp khi user click trên page cần được lưu trữ hành động của người dùng lại. Trong một số trường hợp nó sẽ bị mất hoặc bị duplication message vẫn coi là ok. Độ trễ có thể cao miễn là không ảnh hưởng đến trải nghiệm người dùng là được.
  • Có một số yêu cầu khác nhau sẽ ảnh hưởng đến cách bạn write message xuống, lúc này sẽ phụ thuộc vào config bạn dùng.
  • Để bắt đầu gửi message xuống, bạn cần tạo một topic mà bạn muốn gửi data, có thể chỉ định key cũng như partition. Khi message được gửi xuống producer sẽ serialize key và value của object đến byte-array. Khi data được sent xuống, nếu có chỉ định partition thì sẽ không làm gì cả mà chỉ trả về partition. Còn nếu không chọn partitioner sẽ chọn partition, khi đã chọn xong thì producer đã biết topic và partition sẽ đi đến, nó sẽ add record đến batch của nhiều record và gửi đến topic-partition.
  • Khi broker nhận được message nó sẽ trả response, nếu broker write message failed nó sẽ trả về error, và producer sẽ cố thử lại vài lần rồi mới trả về data thành công hoặc thất bại.

Nguồn: viblo.asia

Bài viết liên quan

Thay đổi Package Name của Android Studio dể dàng với plugin APR

Nếu bạn đang gặp khó khăn hoặc bế tắc trong việc thay đổi package name trong And

Lỗi không Update Meta_Value Khi thay thế hình ảnh cũ bằng hình ảnh mới trong WordPress

Mã dưới đây hoạt động tốt có 1 lỗi không update được postmeta ” meta_key=

Bài 1 – React Native DevOps các khái niệm và các cài đặt căn bản

Hướng dẫn setup jenkins agent để bắt đầu build mobile bằng jenkins cho devloper an t

Chuyển đổi từ monolith sang microservices qua ví dụ

1. Why microservices? Microservices là kiến trúc hệ thống phần mềm hướng dịch vụ,