نظرة عامة على EventStore

إشعار

اعتبارًا من خدمة النسيج الإصدار 6.4. تتوفر واجهات برمجة تطبيقات EventStore فقط لمجموعات Windows التي تعمل على Azure فقط. نحن نعمل على نقل هذه الوظيفة إلى Linux بالإضافة إلى مجموعاتنا المستقلة.

نظرة عامة

تم تقديم خدمة EventStore في الإصدار 6.2، وهي خيار مراقبة في Service Fabric. يوفر EventStore طريقة لفهم حالة المجموعة، أو أحمال العمل الخاصة بك في وقت معين. EventStore هي خدمة نسيج الخدمة ذات الحالة التي تحافظ على الأحداث من المجموعة. يتم عرض الحدث من خلال Service Fabric Explorer و REST و APIs. يستعلم EventStore المجموعة مباشرة للحصول على بيانات التشخيص عن أي كيان في مجموعتك، ويجب استخدامها للمساعدة:

  • قم بتشخيص المشكلات في التطوير أو الاختبار، أو حيث يمكنك استخدام خط أنابيب للمراقبة
  • تأكد من معالجة إجراءات الإدارة التي تتخذها على مجموعتك بشكل صحيح
  • احصل على "لقطة" عن كيفية تفاعل Service Fabric مع كيان معين

تظهر لقطة الشاشة علامة التبويب EVENTS في جزء Nodes عدة أحداث، بما في ذلك حدث NodeDown.

لرؤية قائمة كاملة بالأحداث المتوفرة في EventStore، راجع أحداث Service Fabric.

إشعار

اعتبارًا من خدمة النسيج الإصدار 6.4. تتوفر واجهات برمجة تطبيقات EventStore وUX بوجهٍ عام لنُظم مجموعات Azure Windows. نحن نعمل على نقل هذه الوظيفة إلى Linux بالإضافة إلى مجموعاتنا المستقلة.

يمكن الاستعلام عن خدمة EventStore للأحداث المتوفرة لكل كيان ونوع كيان في نظام مجموعتك. هذا يُعني أنه يمكنك الاستعلام عن الأحداث على المستويات التالية:

  • نظام المجموعة: الأحداث الخاصة بنظام المجموعة نفسها (مثل ترقية نظام المجموعة)
  • العُقد: جميع الأحداث على مستوى العقدة
  • العُقدة: أحداث خاصة بعقدة واحدة، يتم تحديدها بواسطة nodeName
  • التطبيقات: جميع الأحداث على مستوى التطبيق
  • التطبيق: أحداث خاصة بتطبيق واحد تم تحديده بواسطة applicationId
  • الخدمات: أحداث من جميع الخدمات في نظام مجموعاتك
  • الخدمة: أحداث من خدمة معينة تم تحديدها بواسطة serviceId
  • الأقسام: أحداث من جميع الأقسام
  • القسم: أحداث من قسم معين تم تحديده بواسطة partitionId
  • النسخ المتماثلة للقسم: أحداث من جميع النسخ المتماثلة/المثيلات داخل قسم معين تم تحديده بواسطة partitionId
  • نسخة متماثلة من القسم: أحداث من نسخة متماثلة/مثيل معين تم تحديده بواسطة replicaId و partitionId

لمعرفة المزيد حول واجهة برمجة التطبيقات، راجع مرجع واجهة برمجة تطبيقات EventStore.

تتمتع خدمة EventStore أيضاً بالقدرة على ربط الأحداث في نظام مجموعتك. من خلال النظر إلى الأحداث التي تمت كتابتها في نفس الوقت من كيانات مختلفة قد تؤثر على بعضها البعض، فإن خدمة EventStore قادرة على ربط هذه الأحداث للمساعدة في تحديد أسباب الأنشطة في مجموعتك. على سبيل المثال، إذا أصبح أحد تطبيقاتك غير صحي دون أي تغييرات مستحثة، فستنظر خدمة EventStore أيضاً في الأحداث الأخرى التي يكشفها النظام الأساسي ويمكن أن يربط ذلك بحدث Error أو Warning. هذا يساعد في الكشف عن الفشل على نحوٍ أسرع وتحليل الأسباب الجذرية.

تمكين EventStore على نظام مجموعتك

نظام المجموعة المحلي

في fabricSettings.json في نظام مجموعتك، أضِف EventStoreService كميزة إضافية وبادر بترقية نظام المجموعة.

    "addOnFeatures": [
        "EventStoreService"
    ],

إصدار نظام المجموعة +6.5

إذا تمت ترقية نظام مجموعة Azure إلى الإصدار 6.5 أو أعلى، يتم تمكين EventStore تلقائيا على نظام المجموعة الخاص بك. لإلغاء الاشتراك، تحتاج إلى تحديث قالب نظام مجموعتك بما يلي:

  • استخدام إصدار واجهة برمجة تطبيقات أو 2019-03-01 إصدار أحدث
  • إضافة التعليمات البرمجية التالية إلى قسم الخصائص في نظام المجموعة
      "fabricSettings": [
        …
      ],
      "eventStoreServiceEnabled": false
    

إصدار نظام المجموعة 6.4

إذا كنت تستخدم الإصدار 6.4، يمكنك تحرير قالب Azure Resource Manager لتشغيل خدمة EventStore. يتم ذلك عن طريق إجراء ترقية تكوين نظام المجموعة وإضافة التعليمات البرمجية التالية، يمكنك استخدام PlacementConstraints لوضع النسخ المتماثلة لخدمة EventStore على NodeType معين، على سبيل المثال، NodeType مخصص لخدمات النظام. يكوِّن القسم upgradeDescription ترقية التكوين لتشغيل إعادة تشغيل على العُقد. يمكنك إزالة القسم في تحديث آخر.

    "fabricSettings": [
          …
          …
          …,
         {
            "name": "EventStoreService",
            "parameters": [
              {
                "name": "TargetReplicaSetSize",
                "value": "3"
              },
              {
                "name": "MinReplicaSetSize",
                "value": "1"
              },
              {
                "name": "PlacementConstraints",
                "value": "(NodeType==<node_type_name_here>)"
              }
            ]
          }
        ],
        "upgradeDescription": {
          "forceRestart": true,
          "upgradeReplicaSetCheckTimeout": "10675199.02:48:05.4775807",
          "healthCheckWaitDuration": "00:01:00",
          "healthCheckStableDuration": "00:01:00",
          "healthCheckRetryTimeout": "00:5:00",
          "upgradeTimeout": "1:00:00",
          "upgradeDomainTimeout": "00:10:00",
          "healthPolicy": {
            "maxPercentUnhealthyNodes": 100,
            "maxPercentUnhealthyApplications": 100
          },
          "deltaHealthPolicy": {
            "maxPercentDeltaUnhealthyNodes": 0,
            "maxPercentUpgradeDomainDeltaUnhealthyNodes": 0,
            "maxPercentDeltaUnhealthyApplications": 0
          }
        }

الخطوات التالية