- Xuất bản vào
Kafka có thể mất tin nhắn không?
- Tác giả

- Tên
- AbnAsia.org
- @steven_n_t
"Xử lý lỗi là một trong những khía cạnh quan trọng nhất của việc xây dựng hệ thống đáng tin cậy.
Hôm nay, chúng ta sẽ thảo luận về một chủ đề quan trọng: Kafka có thể mất tin nhắn không?
Một niềm tin chung của nhiều nhà phát triển là Kafka, bằng chính thiết kế của nó, đảm bảo không bị mất tin nhắn. Tuy nhiên, hiểu được các sắc thái trong kiến trúc và cấu hình của Kafka là điều cần thiết để thực sự nắm bắt được cách thức và thời điểm nó có thể mất tin nhắn và quan trọng hơn là cách ngăn chặn những tình huống như vậy.
Sơ đồ bên dưới cho thấy một tin nhắn có thể bị mất trong vòng đời của nó ở Kafka như thế nào.
🔹 Nhà sản xuất Khi chúng ta gọi production.send() để gửi tin nhắn, tin nhắn đó sẽ không được gửi trực tiếp đến nhà môi giới. Có hai luồng và một hàng đợi liên quan đến quá trình gửi tin nhắn:
- Chủ đề ứng dụng
- Tích lũy hồ sơ
- Chuỗi người gửi (luồng I/O)
Chúng ta cần định cấu hình 'acks' và 'thử lại' thích hợp cho nhà sản xuất để đảm bảo tin nhắn được gửi đến nhà môi giới.
🔹 Nhà môi giới Cụm môi giới sẽ không bị mất tin nhắn khi nó hoạt động bình thường. Tuy nhiên, chúng ta cần hiểu những tình huống cực đoan nào có thể dẫn đến mất tin nhắn:
Các thông báo thường được xóa vào đĩa một cách không đồng bộ để có thông lượng I/O cao hơn, do đó, nếu phiên bản ngừng hoạt động trước khi quá trình xóa xảy ra thì các thông báo sẽ bị mất.
Các bản sao trong cụm Kafka cần phải được cấu hình đúng cách để giữ bản sao dữ liệu hợp lệ. Tính quyết định trong đồng bộ hóa dữ liệu là quan trọng.
🔹 Người dùng Kafka đưa ra nhiều cách khác nhau để gửi thông điệp. Tự động cam kết có thể xác nhận việc xử lý hồ sơ trước khi chúng được xử lý thực sự. Khi người dùng dừng lại giữa quá trình xử lý, một số bản ghi có thể không bao giờ được xử lý.
Một phương pháp hay là kết hợp cả cam kết đồng bộ và không đồng bộ, trong đó Chúng ta sử dụng cam kết không đồng bộ trong vòng xử lý để có thông lượng cao hơn và cam kết đồng bộ trong xử lý ngoại lệ để đảm bảo giá trị bù cuối cùng luôn được cam kết."

TÁC GIẢ
Về ABN Asia: Ai Base Network (ABN), ABN Asia được thành lập từ năm 2012, là một công ty xuất phát từ học thuật, do những giảng viên, cựu du học sinh Hungary, Hà Lan, Nga, Đức, và Nhật Bản sáng lập. Chúng ta chia sẻ đam mê chung và tầm nhìn vững chắc về công nghệ, mang đến sự đổi mới và chất lượng đỉnh cao cho khách hàng. Phương châm của Chúng ta là: Tốt hơn. Nhanh hơn. An toàn hơn. Trong nhiều trường hợp: Rẻ hơn.

© ABN ASIA