2012-01-04 12 views
8

App.config sayfamda MessageEndpointMappings bölümünü görüyorum ve sadece kafamı karıştırıyor. MessageEndpointMappings, giden iletilere karşı bir abonelik oluşturmayı nasıl biliyor?

<UnicastBusConfig> 
<MessageEndpointMappings>  
    <add Messages="MyServiceBus.MessageHub.Contracts" Endpoint="MessageHub"/> 
</MessageEndpointMappings> 
</UnicastBusConfig> 

Ama diğer sıralara giden iletileri yapılandırmak için kullanılacak gibi görünüyor diğer zamanlar

:

(bu bir yaptığı gibi) başka kuyruğa abone olmak için bir müşterinin setleri gibi

Bazen görünüyor

<UnicastBusConfig> 
<MessageEndpointMappings>  
    <add Messages="ServiceBus.MessageHub.InternalMessages" Endpoint="MessageHub"/> 
</MessageEndpointMappings> 
</UnicastBusConfig> 

Ama gerçekten, ikisi arasında bir fark yoktur. Peki, bir abonelik ne zaman kurulur ve ne zaman mesaj göndermek için kurulur?

Ya da gerçekten her zaman yapıyor ve ben ikisini de kullanmıyorum?

cevap

19

Esasen, MessageEndpointMappings öğesinde bildirdiğiniz şey "sahibi belirtilen iletilerden hangisidir?" bu mesajlar Send t veya Publish d olsun ister göre belirlenmesinden dolayı değil mesaj akışı, -

görüntülemek için bir başka yöntemde, bu yönü hizmet bağımlılığı olmasıdır. Bu nedenle, belirli bir hizmetten mesaj göndermek ve mesajlara abone olabilmeniz için, gönderen/abone ucunda bir uç nokta eşlemesi bildirirsiniz.

Ve gönderici/abone başka bir hizmet ve bu uç nokta haritalama dahil bir ileti için bir işleyici işaret eden bir uç nokta eşlemesi olduğunda devre dışı sürece, sonra NServiceBus (otomatik olarak bu mesajın abone olmak yeterince güzel DoNotAutoSubscribe() ile otomatik abonelik) - mantıken, gönderenin/abonenin verilen mesaja abone olmak istediği anlamına gelmesi gerekir.

Bu şekilde düşündüğünüzde, bunun mantıklı olduğunu düşünüyorum. Umarım öyle hissediyorsundur :)

İlgili konular