تكوين نقطة نهاية للعمل على حد سواء كما عامل والمشترك
-
06-07-2019 - |
سؤال
هل من الممكن تكوين نقطة نهاية ليكون بمثابة عامل استرجاع وظائف من موزع والاشتراك في بعض نوع من الرسائل؟
ولدي على السيناريو التالي (مقتبس لبيع المصطلحات)
و*) إدارة مركزية تنشر بين الحين والآخر لائحة الأسعار الجديدة. يجب أن يتم إخطار جميع العاملين. وهذا يعني، عامل يجب الاشتراك في هذا الحدث.
و*) عند وصول النظام الجديد على المستوى المركزي، ويرسله إلى الموزع، والتي أرسلها للعامل الخمول المقبل لتتم معالجتها. وهذا يعني، وإلى أن يتم تكوين عامل لتلقي الرسائل من الموزع. أنا استخدم التكوين التالية:
<MsmqTransportConfig
InputQueue="worker"
ErrorQueue="error"
NumberOfWorkerThreads="2"
MaxRetries="5"
/>
<UnicastBusConfig
DistributorControlAddress="distributorControlBus"
DistributorDataAddress="distributorDataBus" >
<MessageEndpointMappings>
<add Messages="Events" Endpoint="messagebus" />
</MessageEndpointMappings>
</UnicastBusConfig>
عند I تكوينه فقط كعامل أو فقط كما كل شيء مشترك يعمل كما هو متوقع، ولكن ليس عندما تكوينه على حد سواء.
واكتشفت أن رسالة تصل في قائمة الانتظار مدخلات أساسية مع عنوان الموزع كما عنوان المرسل بدلا من عنوان العامل، والناشر تعترف أي مشترك في هذه الحالة. أيه أفكار؟ يرجع الفضل في ذلك مسبقا.
المحلول
والعمال. وأعتقد أن الطريق للذهاب يكون أن يكون لديك وسط الاشتراك في الأسعار وعندما "NewOrderMessage" يصل إثراء هذه البيانات مع الأسعار المطلوبة (ربما أسعار الوحيدة للمنتجات في هذا ترتيب معين) وإرسال ProcessOrderRequest جديدة لمدخلات طابور من الموزع.
وهناك طريقة أخرى سيكون لديك العملية التي يرسل طلب لتشمل الأسعار في طلب النظام.
هل هذا أي معنى؟
و/ أندرياس
نصائح أخرى
والعمال وراء الموزع هو كيف قمت بقياس خارج مشترك منطقي واحد، وليس كيفية التعامل مع العديد من المشتركين منطقي. وهذه النقطة هي أنه ليس هناك سوى عامل واحد من مجموعة من العمال يجب ان تحصل على رسالة معينة، في هذه الحالة، وتريد جميع العاملين لتبدو هي نفسها للناشر - وهذا هو السبب يتم إعطاء عنوان الموزع
إذا كان لديك عدة مشتركين المنطقي الذي تريد توسيع نطاق خارج، وإعطاء كل واحد منهم الموزع الخاصة بهم.