Tôi hiện đang thiết kế một ứng dụng mà cuối cùng tôi sẽ muốn chuyển sang Windows Azure. Trong ngắn hạn, tuy nhiên, nó sẽ được chạy trên một máy chủ mà tôi sẽ lưu trữ bản thân mình.Chiến lược tốt cho thư xếp hàng?
Ứng dụng này bao gồm một số ứng dụng web riêng biệt - một số trong số này chủ yếu là các dịch vụ WCF nhận dữ liệu và một số là các trang web để người dùng quản lý dữ liệu. Ngoài ra, sẽ cần phải có một dịch vụ công nhân đang chạy trong nền sẽ xử lý dữ liệu theo nhiều cách khác nhau.
Tôi rất muốn sử dụng kiến trúc được tách riêng cho việc này. Lý tưởng nhất là tôi muốn các thành phần (ví dụ: các ứng dụng web và dịch vụ công nhân) biết càng ít càng tốt về nhau. Dường như việc sử dụng hàng đợi tin nhắn sẽ là giải pháp tốt nhất ở đây - các ứng dụng web có thể enqueue tin nhắn với đơn vị công việc vào hàng đợi và dịch vụ công nhân có thể chọn chúng và xử lý chúng khi cần thiết.
Tuy nhiên, tôi muốn tập hợp các công nghệ tốt để thực hiện việc này, nhớ rằng cuối cùng tôi sẽ chuyển sang Azure và muốn giảm thiểu số lượng công việc tôi sẽ cần làm khi tôi di chuyển sang đám mây. Azure có một thành phần Queue được xây dựng trong đó có vẻ lý tưởng cho các nhu cầu của tôi. Những gì tôi muốn làm là tạo ra một cái gì đó bản thân mình mà sẽ bắt chước này càng chặt chẽ càng tốt.
Dường như có một số tùy chọn (Tôi đang sử dụng .NET trên Windows, với một SQL Server vào cuối năm 2005 trở lại) - những cái tôi đã tìm thấy cho đến nay là:
- MSMQ
- SQL server môi giới dịch vụ
- lăn riêng tôi sử dụng một bảng cơ sở dữ liệu và một số được lưu trữ procs
tôi đã tự hỏi nếu có ai có bất cứ đề nghị cho điều này - hoặc nếu có ai đã làm bất cứ điều gì tương tự và có lời khuyên về điều cần làm/để tránh. Tôi nhận ra rằng mọi tình huống đều khác nhau, nhưng trong trường hợp này tôi nghĩ rằng các yêu cầu xếp hàng của tôi khá phổ biến nên tôi rất muốn nghe suy nghĩ của người khác về cách tốt nhất để làm điều này.
Cảm ơn trước,
John
Cảm ơn! Điều đó rất hữu ích. Có vẻ như MSMQ có thể là một lựa chọn tốt hơn cho mục đích của chúng tôi - tôi đoán một bước tiếp theo sẽ là so sánh MSMQ với Azure xếp hàng. Tôi biết, ví dụ, Azure không đảm bảo tin nhắn sẽ được gửi theo thứ tự (hoặc chỉ một lần) vì vậy tôi sẽ cần phải kiểm tra này chống lại MSMQ để xem những gì hành vi tương ứng là. Nhưng nhờ một lần nữa cho điều này - đó là một so sánh rất nhiều thông tin. – John