سؤال

أقوم بنقل بنيتي من واحدة مقترنة إلى SOA (WCF) مقترنة بشكل فضفاض.لدي العديد من الخدمات التي تتواصل مع بعضها البعض.كيف يمكنك مزامنة مثيلات الأعمال بين الخدمات؟

أرى سيناريوهين هنا:

  1. يتم إنشاء كافة كائنات الأعمال في خدمة واحدة فقط، دعنا نسميها الخدمة الرئيسية وهو الوحيد الذي يمكنه الوصول إلى كافة التغييرات التي تم إجراؤها على الكائنات.الخدمة مسؤولة عن تحديث الكائنات في قاعدة البيانات.يؤدي أي تحديث لكائن ما إلى ظهور إشعار.تسجل الخدمات الأخرى في الأحداث التي تحتاجها ويتم إعلامها وفقًا لذلك.أنا أسميها مركزية يقترب.

    + قم بإخطار الخدمة بمجرد إجراء التغيير
    - الكثير من المكالمات بين الخدمات.
    - المزيد من اقتران.

  2. تقوم جميع الخدمات فقط بتحميل الكائنات التي تحتاجها وتراقب قاعدة البيانات بشكل دوري بحثًا عن أي تغيير يتم إجراؤها عليها.كانت فكرتي هي استخدام تتبع التغيير SQL Server 2008 لاكتشاف أي تغيير تم إجراؤه على الكائنات.

    + أقل من حركة المرور ومشاكل الاتصال المحتملة بين الخدمات.
    + أقل اقترانًا
    - التأخير بسبب المراقبة الدورية.

إذن، ما هو جوابك على هذا؟(إذا كان لديك 3، 4، الخ ...سيكون جميلاً أيضاً)

هل كانت مفيدة؟

المحلول

لماذا تحتاج إلى مزامنة مثيلات الأعمال بين الخدمات؟يبدو لي أن الخدمات لم تقترن بشكل كافٍ بعد.

نصائح أخرى

في الخيار الأول، تصبح الخدمة الرئيسية نقطة فشل واحدة واختناقًا في الأداء.

وفي الحالة الثانية، فإنك تخاطر بالكثير من الاستطلاعات غير الضرورية للحصول على معلومات.

والاقتراح الثالث سيكون:

إذا كانت كل خدمة من خدماتك تحتوي على قاعدة بيانات خاصة بها، فيمكنك استخدام النسخ المتماثل لقاعدة البيانات لنقل البيانات من الخدمة التي تم إنشاؤها فيها، إلى الخدمات الأخرى التي يتم استخدامها فيها.

يحرر

بناء على تعليقك.يمكنك تجربة التخزين المؤقت لمكتبة المؤسسة مع مخزن دعم قاعدة البيانات.بهذه الطريقة تكون لديك بياناتك في الذاكرة، ولكن سيتم تحديثها إذا تم تحديث القيم الموجودة في قاعدة البيانات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top