Hướng dẫn rabbitmq nodejs - thỏmq nodejs
Nội dung bài viết Lý do vì sao nên sử dụng RabbitMQ, và vì sao nên dùng nodejs RabbitMQ, thì đã có ở những bài trước. Ở bài viết này chỉ chia sẻ cách vận chuyển tin nhắn khi Anh em cũng biết trong môi trường product nó khác với test. Không hệ thống nào là hoản hảo hết, cách tổ chức tốt nhất là giảm tỷ lệ crash mà thôi. Ví dụ 1 năm chết server 2%, thì cố gằng cải tổ nó chỉ còn 1% là hạnh phúc rồi. RabbitMQ không ngoại lệ, nó cũng bị miss như kết nối qua cao, nghẽn, hoặc thay đổi ổ đĩa... Reconnect RabbitMQSender:
Receiver:
Trong trường hợp này, ngay cả khi RabbitMQ khởi động lại, người gửi và người nhận có thể tự động kết nối lại RabbitMQ. Vậy thôi đơn giản thôi, đương nhiên ví dụ sẽ không hoàn hảo cho tất cả trưởng hợp nhưng bạn có thể dựa vào đó làm nên điều tuyệt với. Như demo "Hello world", nó làm nên tất cả. Đã đăng vào thg 3 30, 9:40 SA 6 phút đọc 6 phút đọc RabbitMQ là gì?RabbitMQ là một message broker (MOM - Message-Oriented Middleware), sử dụng giao thức AMQP (Advanced Message Queue Protocol). RabbitMQ là một phần mềm trung gian được sử dụng như là phương tiện liên lạc giữa các ứng dụng, dịch vụ với nhau. Đây là kiến trúc cơ bản của một message queue: Đây là kiến trúc cơ bản của một message queue:
Minh họa cách thức hoạt động của RabbitMQ như sau:
Các thuật ngữ cần nắm trong mô hình message queue:
Một điều lưu ý ở đây, tuy là mô hình message-oriented nhưng các ứng dụng, dịch vụ không làm việc trực tiếp với message mà chỉ làm việc qua Exchange. Exchange được phân thành nhiều loại (tham khỏa ở đây), trong bài viết này mình chỉ sử dụng Direct Exchagne (Default Exchange) để demo cho các bạn hiểu cách hoạt động trong RabbitMQ nhé. Bắt tay tạo một mô hình message queue đơn giản thôi nào ! Mình sẽ tạo một RabbitMQ server bằng docker, và tạo ra Publisher và Consumer bằng Nodejs dùng để kết nối với RabbitMQ server vừa tạo Nhập lệnh dưới đây để chạy rabbitmq server trên docker
Docker sẽ tạo RabbitMQ server từ RabbitMQ image với port mặc định là 5672. Sau khi tạo RabbitMQ server thành công, chúng ta sẽ tạo publisher và consumer bằng nodejs: Tạo ra 2 file consumer.js và publisher.js với code lần lượt là
Chạy lần lượt câu lệnh "node publisher.js" và "node consumer.js" sẽ nhận được kết quả Đầu tiên chúng ta tạo ra client là publisher kết nối với rabbitmq server và gửi message tới queue có tên là Jobs, tiếp theo consumer sẽ nhận tất cả các message mà có trong queue đó. Khi chúng ta tắt và mở lại thì consumer nhận và in ra Như vậy consumer sẽ nhận tất cả những message có trong queue và hiển thị như trên. Những message cũ vẫn được hiện thị vì chúng ta chưa đá nó ra khỏi queue. Thêm câu Trong thực tế , việc xử lý message sẽ phức tạp hơn rất nhiều, mục đích bài viết chỉ cho các bạn cách tiếp nhận và xử lý message một cách đơn giản nhất. hy vọng qua bài biết này, chúng ta có thể hiểu cách hoạt động của RabbitMQ cũng như cách thức truyền và nhận message giữa các ứng dụng. Thật đơn giản đúng không 😆 All rights reserved |