Chúng tôi có một thư viện bao quanh RabbitMQ tại nơi làm việc của tôi, được tạo bởi một người không còn làm việc ở đây nữa. Tôi đang thiết kế một hệ thống mới bằng cách sử dụng Rabbit và đang tìm ra cách tiếp cận tốt nhất để khai báo hàng đợi, trao đổi và ràng buộc. Kiến trúc thỏ của chúng tôi có một vài khu liên hợp toàn cầu, và mỗi vùng có nhiều nút Rabbit.Khi nào cần khai báo/ràng buộc Hàng đợi và Trao đổi với RabbitMQ
Mã trình bao bọc để xuất bản thư và đăng ký hàng đợi tuyên bố lại các trao đổi, hàng đợi và liên kết có liên quan mỗi lần. Mối quan tâm của tôi là điều này có thể giới thiệu độ trễ đáng kể vào mỗi thông báo xuất bản, đặc biệt nếu nó cần phải chờ xác nhận hàng đợi/trao đổi tồn tại trong các vùng toàn cầu từ xa. Tôi hy vọng điểm chuẩn của hàng triệu tin nhắn một giây không tái tuyên bố trao đổi cho mỗi lần xuất bản.
Tóm lại, cách tiếp cận này có vẻ hơi lãng phí và hoang tưởng với tôi, nhưng có lẽ tôi đang thiếu điều gì đó.
Vì vậy, tôi có một vài câu hỏi:
- là tái tuyên bố hàng đợi và trao đổi một hiệu suất đáng kể hit, được đưa ra liên đoàn toàn cầu?
- Khai báo lại từng cách sử dụng một cách tiếp cận tốt bởi vì nó xử lý hàng đợi/trao đổi biến mất do khởi động lại môi giới hoặc xóa rõ ràng?
- Chúng ta có nên khai báo hàng đợi và trao đổi một lần cho mỗi quá trình và mong đợi họ kéo dài suốt cả đời?
- Các trao đổi và hàng đợi bền có được khai báo trong cấu hình Thỏ và không được ứng dụng khai báo không?
- Cách thay đổi cấu hình cho hàng đợi/trao đổi sẽ được xử lý nếu các ứng dụng có thể tiếp tục khai báo chúng bằng cấu hình cũ? Các ứng dụng có nên xử lý lỗi khai báo và tiếp tục xuất bản/tiêu thụ không?
Cảm ơn câu trả lời kỹ lưỡng của bạn –