2012-12-06 27 views
6

Tôi là một vài giờ để hiểu kiến ​​trúc của Dịch vụ Xe buýt Azure. Tôi tự hỏi cụ thể nếu công nghệ xếp hàng này có thể được sử dụng để hỗ trợ định tuyến thư - một cái gì đó tương tự như khả năng định tuyến của RabbitMQ. http://www.rabbitmq.com/tutorials/tutorial-four-python.htmlĐịnh tuyến thư với Windows Azure Service Bus

Chúng tôi sẽ sử dụng trao đổi trực tiếp thay thế. Thuật toán định tuyến đằng sau một cuộc trao đổi trực tiếp rất đơn giản - một thông điệp đi đến hàng đợi có khóa ràng buộc chính xác khớp với khóa định tuyến của thư.

Trong thiết lập này, chúng ta có thể thấy trao đổi trực tiếp X với hai hàng đợi ràng buộc với nó. Hàng đợi đầu tiên bị ràng buộc với khóa màu cam ràng buộc, và số thứ tự có hai ràng buộc, một có gắn kết khóa màu đen và một với một số khác với màu xanh lục.

Trong thiết lập như vậy, thông báo được xuất bản cho trao đổi bằng khóa định tuyến cam sẽ được chuyển đến hàng đợi Q1. Tin nhắn có khóa định tuyến là màu đen hoặc xanh lục sẽ chuyển sang quý 2. Tất cả các tin nhắn khác sẽ bị hủy.

Tìm kiếm ai đó với kiến ​​thức sâu về kiến ​​trúc Bus dịch vụ để đề xuất vector tốt nhất để triển khai loại hàng đợi này.

Trả lời

6

Windows Azure Service Bus Chủ đề và Đăng ký cho phép bạn thực hiện giống hệt nhau:

enter image description here

Hãy so sánh hình ảnh ví dụ của bạn:

  • Việc trao đổi trực tiếp X sẽ là DataCollectionTopic trong hình ảnh.
  • Q1 sẽ là DashboardSubscription (với một bộ Filter để Redmond)
  • Q2 sẽ là InventorySubscription (không Filter, có nghĩa là nó sẽ nhận được tất cả thông điệp).

Thực sự rất đơn giản. Khách hàng của bạn gửi một tin nhắn đến Chủ đề (tương tự như một hàng đợi) và có thể thêm một số siêu dữ liệu vào thông báo này (điều này có thể được sử dụng như là một binding key). Bây giờ bạn không đọc thư từ Chủ đề, Chủ đề sẽ chuyển tiếp thư tới tất cả Đăng ký. Để thực hiện định tuyến thư, bạn chỉ cần đặt bộ lọc trên một hoặc nhiều Đăng ký bằng cú pháp tương tự như SQL.

Hướng dẫn bằng Python: How to Use Service Bus Topics/Subscriptions

+0

Hoàn toàn. Đây là một câu trả lời tuyệt vời và chức năng tuyệt vời. – Kenn

Các vấn đề liên quan