Tôi có một ứng dụng môi giới dịch vụ hiện có 5 hoặc 6 hàng đợi trên hai máy chủ.
Quy trình công việc chung là:
Máy chủ A
- Người dùng điền vào một số bảng
- Người dùng kích hoạt Proc được lưu trữ, đặt một thông điệp vào hàng đợi tiêu đề cho biết có nhiều việc phải làm
- Nhà môi giới đọc từ hàng đợi tiêu đề này và tạo ra một số lượng lớn thư có thể gửi đến Máy chủ B
Máy chủ B
- Tất cả tin nhắn đi đến 1 hàng đợi
- Trong hàng đợi này, thông báo được kiểm tra và giải nén, tải trọng được chạy và phản hồi được thu thập từ một tập hợp các procs / bảng khác mà chúng ta tương tác
- Thông báo phản hồi được tạo và gửi lại cho Máy chủ A
Máy chủ A
- Thông báo phản hồi đi đến một hàng đợi đặc biệt và được sử dụng để cập nhật các bảng mà người dùng cư trú ở trên cùng
- Thông báo hộp thoại kết thúc được đọc từ hàng đợi của người khởi tạo và được sử dụng để cập nhật một bảng khác theo dõi tiến trình của bản ghi tiêu đề (tức là 50 trong số 100 tin nhắn được xử lý)
- Khi chúng tôi phát hiện ra rằng bản ghi tiêu đề đã được xử lý hoàn toàn, một tin nhắn mới sẽ được gửi đến một hàng đợi khác gửi email thông báo
Tôi đã có một đề xuất để hợp nhất một số hàng đợi trên Máy chủ A và tôi không chắc cách thực hành tốt nhất cho việc này là gì. Hai trong số các hàng đợi sẽ có khối lượng xử lý thư tương đối cao và hàng đợi email sẽ khá chậm.
Chúng tôi đã làm (tôi nghĩ) một công việc tốt trong việc quản lý các loại tin nhắn nên về mặt lý thuyết chúng tôi có thể đặt tất cả vào một hàng đợi và ứng dụng vẫn hoạt động.
Có cách thực hành tốt nhất về thời điểm duy trì hàng đợi riêng biệt và khi nào hợp nhất trong một kịch bản như thế này?