Bạn đang xem: Message queue là gì

khi client hotline REST API request để thực hiện một Order. Order service nhấn request xử trí business ngắn gọn xúc tích rồi Call tới Payment Service qua API nhằm triển khai Payment.
Mô hình bên trên là nhiều loại quy mô liên kết Point-To-Point, các service kết nối trực tiếp với nhau trải qua API end-point. Tuy nhiên, quy mô này chỉ áp dụng với hệ thống có con số service nhỏ dại. Nếu con số service tăng, giao tiếp mẫu mã này vẫn trsinh sống đề nghị trắc trở phức tạp, khó quản lý

Trong mô hình này, các Microservice ko tiếp xúc trực tiếp cùng nhau mà thông qua hệ thống Message Queue, tiếp xúc bất đồng bộ
Order Microservice publish một message đến Message queue theo một topic làm sao kia. Payment Microservice với các Microservice sẽ subscribe các message theo một topic rõ ràng. lấy ví dụ Payment Microservice subscribe message topic “ABC” thì chỉ lúc Order Microservice gửi message ABC thì nó mới nhấn.
Cơ chế này tương tự như bí quyết các bạn gửi thư từ A đến B. A sẽ không còn đem tlỗi mang lại tận chỗ đến B nhưng gửi vào bưu điện, ghi rõ liên tưởng tín đồ dìm. Bưu năng lượng điện đóng vai trò như một Message Broker để phạt tlỗi đến bạn dìm theo cửa hàng đã đến.
Cách này tách biệt bạn gửi với tín đồ nhấn, với tín đồ truyền tin trung gian đang lưu lại tin nhắn đến lúc fan thừa nhận rất có thể giải pháp xử lý.
Xem thêm: Some Là Gì Trong Tiếng Anh? Những Tư Thế Some Swing Hot Nhất Hiện Nay
Giao tiếp thân bạn gửi/ fan nhận thấy tạo ra vị message broker qua những tiêu chuẩn chỉnh truyền tin bất đồng điệu nhỏng AMQP, MQTT.

AMQP.. một giao thức mạng internet msinh sống và được chuẩn chỉnh hóa nhằm truyền message tin yêu giữa các ứng dụng hoặc tổ chức. AMQP. giúp những chuyên gia công nghệ thông tin desgin một hệ sinh thái lời nhắn đồng bộ, phong phú và đa dạng, kết nối những khối hệ thống một biện pháp liên hệ cùng hợp tác.

Tổ chức - ứng dụng trong số tổ chức không giống nhauCông nghệ - áp dụng bên trên các nền tảng không giống nhauThời gian: Hỗ trợ tiếp xúc bất đồng bộKhông gian - hoạt động ngơi nghỉ khoảng cách xa hoặc bên trên những mạng nghèo nàn

Vì hồ hết ưu rứa của AMQP, vì thế nó đã có được sử dụng vào Microservice nhằm triển khai communication giữa các service
Trong ví dụ này, bản thân áp dụng Service Broker là RabitMQ. Một message broker sử dụng căn nguyên AMQP hơi thông dụng.
Download cỗ sở hữu RabitMQ tại phía trên. RabitMQ hỗ trợ cả Windows, Linux. Bài này bản thân áp dụng môi trường thiên nhiên Windows
Sau đó chúng ta có thể truy cập vào RabitMQ theo link sau http://localhost:15672/mgmt. Enter login guest/guest
Tại đây, bản thân đã implement 2 service. Một service vào vai trò là producer để gửi message mang lại queue, service kia là consumer nhằm dìm message này. Ngôn ngữ sử dụng là .Net core
Tạo 2 project console application .NET core thương hiệu là Producer với Consumer. Mình áp dụng package RabbitMQ.Client để tiếp xúc cùng với RabitMQ server

Durable: true (Queue vẫn tồn tại trường hợp nhưng RabitMQ khởi rượu cồn lại)Exclusive: Được sử dụng vì có một connection cùng queue sẽ ảnh hưởng xóa Khi connection kia kết thúcAuto-delete: Queue sẽ bị xóa trường hợp nhỏng consumer ở đầu cuối hủy subscribe Thực hiện publish message

Consumer subscribe message trường đoản cú Producer, khi gồm message cho, Event Consumer_Received sẽ tiến hành Điện thoại tư vấn, extract data cùng thực hiện business lô ghích tương ứng
Chạy chương trình , các bạn sẽ thấy message tự Hello World được skết thúc tự Procedure đến Consumer thông qua RabitMQ
Trên đây là một chạy thử đơn giản dễ dàng biểu đạt Việc communication thân các Microservice cùng nhau trải qua Message Queue, sử dụng chính sách bất đồng bộ. Thực tế, Microservice còn có tương đối nhiều hiệ tượng communicate nữa nlỗi RPC, Rest API HTTP…