2014-04-08 17 views
7

Có thể sử dụng liên kết hoặc xẻng để phản ánh việc tạo các trao đổi và hàng đợi trên một máy chủ này sang máy chủ khác không?RabbitMQ hàng đợi phản chiếu và trao đổi

Tất cả các ví dụ tôi đã thấy khi sử dụng xẻng và liên kết đều sử dụng trao đổi và hàng đợi đã tồn tại trên máy chủ. Những gì tôi muốn làm là tạo ra một trao đổi trên máy chủ A và có một liên bang hoặc xẻng tái tạo nó trên Server B sau đó bắt đầu gửi tin nhắn cho nó. Nếu không thể thực hiện điều này với liên kết hoặc xẻng thì việc thực hiện điều này mà không cần sử dụng cụm, dù kết nối giữa hai máy chủ không nhất quán nên không thể phân cụm được.

Tôi đang chạy RabbitMQ trên cửa sổ.

+0

Bạn có cần gương hai chiều không? – Gabriele

+0

Không, chỉ một cách – user1450877

Trả lời

10

Bạn có thể sử dụng plugin liên kết.

Nó hỗ trợ việc trao đổi exchangequeue liên bang, để phản ánh các hàng đợi và trao đổi bạn có thể cấu hình một chính sách (bằng cách sử dụng giao diện quản lý hoặc dòng lệnh), ví dụ với các thông số này:

Name: my_policy 
Pattern: ^mirr\. <---- mirror exchanges and queues with prefix “mirr.” 
Definition: federation-upstream-set:all 

bạn có thể áp dụng các cấu hình cho giao lưu và hàng đợi, như:

các mô hình Polic y hỗ trợ biểu thức chính quy

Bằng cách này mỗi mới hay cũ trao đổi hoặc hàng đợi mà bắt đầu với tiền tố “MIRR.” sẽ được nhân đôi cho người môi giới khác.

Tôi nghĩ điều này có thể giải quyết được sự cố của bạn.

+1

BTW, trong khi đây là giải pháp tiện lợi, tôi sẽ thêm sau từ tài liệu này 'Các liên kết được gửi ngược dòng không đồng bộ - vì vậy hiệu quả của việc thêm hoặc xóa ràng buộc chỉ được đảm bảo để được nhìn thấy cuối cùng ' – pinepain

+1

Có, cảm ơn bạn @ zaq178miami! Đó là một sự khác biệt lớn so với gương với cụm sao! – Gabriele

+0

hàng đợi được liên kết thực sự là một tùy chọn mới. @ OP: bạn đang sử dụng phiên bản RabbitMQ nào? – Sigismondo

2

Thật không may theo cách này không thể thực hiện điều này, vì kết nối là kết nối điểm-điểm. Bạn phải liên kết một trao đổi với một trao đổi từ xa và trong cấu trúc liên kết của bạn này không thể được tạo ra tự động.

Tôi cũng gặp vấn đề này trong quá khứ. Và làm thế nào tôi giải quyết vấn đề là hơn một mặt logic kinh doanh. Nếu có nhu cầu cho Exchange/Queue mới "trên đường bay", cổng nhập dữ liệu của tôi nhận ra điều này và được tạo trên cục bộ và trên trao đổi từ xa trao đổi mới và hàng đợi với kết nối, trước khi tin nhắn được gửi tới RabbitMQ.

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