MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Cách cấu hình Rebus để có các chủ đề dựa trên loại trình xử lý

Có một số điều có vẻ khó hiểu với câu hỏi của bạn.

Nhưng tôi đoán câu hỏi cơ bản của bạn là làm thế nào để đảm bảo rằng mỗi tin nhắn chỉ được xử lý một lần bởi mỗi người đăng ký.

Câu trả lời khá dễ dàng:Có một điểm cuối riêng biệt cho mỗi người đăng ký - điều này có nghĩa là mỗi người đăng ký sẽ có hàng đợi đầu vào của riêng mình mà tin nhắn được xử lý từ đó và tin nhắn không thành công sẽ được trả lại.

Sau đó, bạn có thể có nhiều hoặc ít trình xử lý trong mỗi người đăng ký tùy thích. Tất cả các trình xử lý tương thích sẽ được thực thi cho mỗi tin nhắn đến.

Với Rebus, mỗi lệnh gọi đến Configure.With(...).(...).Start() sẽ cung cấp cho bạn một điểm cuối riêng biệt - vì vậy trong trường hợp của bạn, tôi khuyên bạn nên kết hợp việc tạo điểm cuối của người đăng ký trong một phương thức, sau đó bạn có thể gọi như thế này:

var event1Subscriber = CreateSubscriber("subscriber_event1");
event1Subscriber.Subscribe<Event1>().Wait();

var event2Subscriber = CreateSubscriber("subscriber_event2");
event2Subscriber.Subscribe<Event2>().Wait();

var event3Subscriber = CreateSubscriber("subscriber_event3");    
event3Subscriber.Subscribe<Event3>().Wait();

// ...

nơi CreateSubscriber sau đó sẽ là một cái gì đó như thế này:

public IBus CreateSubscriber(string queueName)
{
    return Configure.With(GetContainerAdapter())
        .Transport(t => t.UseMsmq(queueName))
        .Start();        
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Không thể kết nối với MongoDB Atlas bằng Mongoose với chuỗi kết nối

  2. Điều đó có nghĩa là gì để phù hợp với bộ làm việc vào RAM cho MongoDB?

  3. 3 bước đơn giản để tạo các cụm phân mảnh MongoDB

  4. Cách giám sát MongoDB với Prometheus &ClusterControl

  5. Không thể kết nối với Mongo DB thay thế trong ứng dụng Meteor