Mô hình đăng ký-nhận thông tin (publish-subscribe pattern) có nghĩa là một tin nhắn được gửi bởi một nhà sản xuất sẽ được nhận bởi nhiều người tiêu dùng. Bởi vì một tin nhắn sẽ được tiêu thụ và xử lý bởi nhiều người tiêu dùng, nó cũng được gọi là mô hình phát sóng hoặc mô hình một-nhiều.
Ghi chú: Bởi vì RabbitMQ thực hiện mô hình đăng ký-nhận thông tin bằng cách sử dụng kiểu trao đổi fanout, nó cũng được gọi là mô hình fanout.
Sơ đồ kiến trúc
Giải thích:
- P đại diện cho nhà sản xuất, C1 và C2 đại diện cho người tiêu dùng, màu đỏ đại diện cho hàng đợi, và X đại diện cho sự trao đổi.
- Sự trao đổi chịu trách nhiệm chuyển tiếp thông điệp đến tất cả các hàng đợi được kết nối với trao đổi.
- Có thể xác định nhiều hàng đợi, mỗi hàng đợi được kết nối với cùng một trao đổi.
- Mỗi hàng đợi có thể có một hoặc nhiều người tiêu dùng.
Mẹo: Trong cùng một hàng đợi, một tin nhắn chỉ có thể được xử lý bởi một người tiêu dùng. Lý do mà mô hình fanout có thể đạt được phát sóng thông điệp chính là thông qua việc sử dụng nhiều hàng đợi thông điệp.
Các trường hợp sử dụng
Mô hình đăng ký-nhận thông tin là một mô hình tiêu thụ một-nhiều phổ biến. Ví dụ, sau khi đặt hàng trong thương mại điện tử, một thông điệp đơn hàng được tạo ra. Mô-đun kho hàng đăng ký nhận thông điệp đơn hàng để xử lý vận chuyển, mô-đun thông báo đăng ký nhận thông điệp đơn hàng để gửi tin nhắn văn bản, mô-đun điểm thưởng đăng ký nhận thông điệp đơn hàng để xử lý điểm thưởng, vv. Bằng cách đăng ký nhận thông điệp theo nhu cầu, mở rộng kinh doanh được thực hiện và đó là một mô hình thiết kế ít kết nối.