Từ Kafka Đến Zeromq Là Gì ? Reviews, Tính Năng, Bảng Giá, So Sánh

      92

Message Queue là 1 trong những thành phần quan tiền trọng thường xuyên thực hiện trong những hệ thống lớn (lấy một ví dụ Yahoo, Tiki) hoặc phần mềm theo bản vẽ xây dựng microservice.

Bạn đang xem: Từ Kafka Đến Zeromq Là Gì ? Reviews, Tính Năng, Bảng Giá, So Sánh

Tuy nhưng, còn nếu như không gặp gỡ các dự án công trình gồm khối hệ thống béo thì sẽ không còn hiểu rõ Message Queue là gì, được thực hiện với mục đích gì!


*
*

Ý nghĩa của queue (mặt hàng đợi) là nó thực hiện việc lấy message theo chính sách vào trước thế ra trước ( First In First Out ).

Một hệ thống Message Queue thường có phần đông yếu tắc sau:

Message: tin tức được gửi (có thể là text, binary hoặc JSON)Message Queue: Nơi đựng các message này, chất nhận được producer cùng consumer hoàn toàn có thể thương lượng với nhauProducer: Service tạo ra thông báo, cung cấp thông tin vào message queueConsumer: Service nhận message từ message queue cùng xử lýMột service bao gồm thể vừa làm cho producer, vừa làm consumer 

Một số Message queue được sử dụng hiện nay:

RabitMQActiveMQSQSZeroMQMSMQIronMQKinesisRocketMQ
*

Thực tế Message Queue được thực hiện chũm nào?

Trong các hệ thống sử dụng kiến trúc microservice, ta sử dụng message queue sẽ giúp đỡ các service tương tác cùng với nhau một bí quyết bất đồng bộ. Service X có tác dụng kết thúc vấn đề có thể gửi message queue để service Y kích hoạt xử trí.

Ví dụ: bao gồm một website chất nhận được người dùng mua video clip từ bỏ hệ thống thì nó sẽ có được các nhân tố sau:

API service: Là 1 producer. Nhận công bố (URL Video) từ bỏ phía người tiêu dùng và cung cấp tin này vào message queueProcessing Service: Vừa là consumer vừa là producer. Service này đọc URL Video trường đoản cú message queue, bước đầu mua tệp tin Video về và encode lại, lưu vào hệ thống. Sau Khi encode ngừng, nó chuyển URL của tệp tin đang encode vào message queueUploading Service: Khi nhận được message từ bỏ processing VPS, nó sẽ upload video clip kia lên Amazon S3
*

Tại sao lại áp dụng Message Queue?

Ưu điểm về Message Queue

Dễ scaling hệ thống: Vào giờ cao điểm, những truy hỏi vấn, ta rất có thể tăng số lượng consumer lên nhằm cách xử lý được nhiều messege rộng. Khi không buộc phải ta hoàn toàn có thể bớt lại.

Xem thêm: Stun Server Là Gì - Tổng Quan Về Stun Server Mà Bạn Cần Biết

Đảm bảo duration/recovery: Do message đã làm được lưu giữ trong queue, khi một service sẽ cách xử lý cơ mà bị crash, ta không phải lo ngại bị mất data vì chưng hoàn toàn có thể rước message trường đoản cú trong queue ra và retry. Trong 1 khối hệ thống có rất nhiều consumer, ví như vài consume crash cũng ko có tác dụng crash cả hệ thốngHỗ trợ rate limit, batch process: Trong trường đúng theo khả năng cách xử lý của khối hệ thống hạn chế (chỉ có thể xử lý 100 lượt release/s) cơ mà phải cách xử lý 10000 lượt release. Với message queue, ta có thể lấy từng lượt release chưa cách xử lý trong queue ra cách xử lý ung dung, ko hại bị mất.
*

Điểm phải để ý về Message Queue

Làm hệ thống tinh vi hơn: Thêm message queue sẽ tăng tính phức tạp của khối hệ thống. Ta nên biết rõ message nào gửi vào queue làm sao, ai gửi ai thừa nhận. Lúc debug nghỉ ngơi local đang khó khăn hơnPhải gồm Monitor Queue: Phải bao gồm các biện phân phát theo dõi (monitor), nhằm bảo đảm an toàn lượng message queue không quá nhiều, làm đầy queue. Queue rất tốt là queue luôn luôn rỗng, hoặc số lượng message trong queue ko tăng thêm nhiều (message gửi vào queue đầy đủ bị consume không còn trong thời gian ngắn thêm nhất)Phải bao gồm message format: Để gửi/nhấn tự 2 phía producer và consumer thống tốt nhất format với nhau. Nếu một bên biến hóa đã làm bên kia không gọi được tài liệu.Khó xử lý đồng bộ: Không phải hệ thống nào cũng cần tới message queue. Nếu nlỗi service A gọi service B, theo nguyên lý đồng nhất, buộc phải kết quả xử trí ngay lập tức, ta buộc phải cần sử dụng Rest hoặc gRPC vẫn xuất sắc rộng.

Bài viết cội được đăng cài đặt tại lcdung.top