استكشاف مشكلات مخزن نقاط التحقق وإصلاحها

تتناول هذه المقالة المشكلات المتعلقة باستخدام Blob Storage كمخزن نقاط تفتيش.

مشكلات في استخدام Blob Storage كمخزن نقاط تفتيش

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

اتبع هذه التوصيات عند استخدام Azure Blob Storage كمخزن نقطة تحقق:

  • استخدم حاوية منفصلة لكل مجموعة مستهلكين. يمكنك استخدام نفس حساب التخزين، ولكن استخدام حاوية واحدة لكل مجموعة.
  • لا تستخدم الحاوية لأي شيء آخر، ولا تستخدم حساب التخزين لأي شيء آخر.
  • يجب أن يكون حساب التخزين في نفس المنطقة التي يوجد فيها التطبيق المنشور. إذا كان التطبيق محليا، فحاول اختيار أقرب منطقة ممكنة.

في صفحة Storage account في مدخل Microsoft Azure، في قسم Blob service ، تأكد من تعطيل الإعدادات التالية.

  • مساحة الاسم الهرمية
  • حذف مبدئي لكائن ثنائي كبير الحجم
  • تعيين الإصدار

استخدام مخزن نقاط التحقق Blob Storage على Azure Stack Hub

إذا كنت تستخدم Azure Blob Storage كمخزن نقاط التحقق في بيئة تدعم إصدارا مختلفا من Storage Blob SDK عن الإصدارات المتوفرة عادة على Azure، فأنت بحاجة إلى استخدام التعليمات البرمجية لتغيير إصدار واجهة برمجة تطبيقات خدمة التخزين إلى الإصدار المحدد الذي تدعمه تلك البيئة. على سبيل المثال، إذا كنت تقوم بتشغيل Event Hubs على Azure Stack Hub الإصدار 2002 ، فإن أعلى إصدار متوفر لخدمة التخزين هو الإصدار 2017-11-09. في هذه الحالة، تحتاج إلى استخدام التعليمات البرمجية لترقية إصدار API لخدمة التخزين إلى 2017-11-09. للحصول على مثال حول كيفية استهداف إصدار محدد من Storage API، راجع هذه العينات على GitHub:

إذا قمت بتشغيل جهاز استقبال مراكز الأحداث الذي يستخدم Blob Storage كمخزن نقاط التحقق دون استهداف الإصدار الذي يدعمه Azure Stack Hub، فستتلقى رسالة الخطأ التالية:

The value for one of the HTTP headers is not in the correct format

نموذج رسالة خطأ في Python

بالنسبة إلى Python، يتم تمرير خطأ azure.core.exceptions.HttpResponseError إلى معالج الأخطاء من on_error(partition_context, error)EventHubConsumerClient.receive() . ولكن، الطريقة receive() لا تحدث استثناء. print(error) طباعة معلومات الاستثناء التالية:

The value for one of the HTTP headers is not in the correct format.

RequestId:f048aee8-a90c-08ba-4ce1-e69dba759297
Time:2020-03-17T22:04:13.3559296Z
ErrorCode:InvalidHeaderValue
Error:None
HeaderName:x-ms-version
HeaderValue:2019-07-07

يسجل المسجل تحذيرين مثل التحذيرات التالية:

WARNING:azure.eventhub.extensions.checkpointstoreblobaio._blobstoragecsaio: 
An exception occurred during list_ownership for namespace '<namespace-name>.eventhub.<region>.azurestack.corp.microsoft.com' eventhub 'python-eh-test' consumer group '$Default'. 

Exception is HttpResponseError('The value for one of the HTTP headers is not in the correct format.\nRequestId:f048aee8-a90c-08ba-4ce1-e69dba759297\nTime:2020-03-17T22:04:13.3559296Z\nErrorCode:InvalidHeaderValue\nError:None\nHeaderName:x-ms-version\nHeaderValue:2019-07-07')

WARNING:azure.eventhub.aio._eventprocessor.event_processor:EventProcessor instance '26d84102-45b2-48a9-b7f4-da8916f68214' of eventhub 'python-eh-test' consumer group '$Default'. An error occurred while load-balancing and claiming ownership. 

The exception is HttpResponseError('The value for one of the HTTP headers is not in the correct format.\nRequestId:f048aee8-a90c-08ba-4ce1-e69dba759297\nTime:2020-03-17T22:04:13.3559296Z\nErrorCode:InvalidHeaderValue\nError:None\nHeaderName:x-ms-version\nHeaderValue:2019-07-07'). Retrying after 71.45254944090853 seconds

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

راجع المقالة التالية وتعرَّف على التقسيم ونقاط الفحص: تحميل قسم الرصيد عبر مثيلات متعددة من التطبيق الخاص بك