مشاركة عبر


ارتباطات Apache Kafka نظرة عامة على Azure Functions

يتيح لك ملحق Kafka لـ Azure Functions كتابة القيم إلى مواضيع Apache Kafka باستخدام ربط الإخراج. يمكنك أيضاً استخدام مشغل لاستدعاء وظائفك رداً على الرسائل في موضوعات Kafka.

هام

روابط Kafka متاحة فقط لـ Functions على خطة Elastic Premium وخطة Dedicated (App Service). يتم دعمها فقط في الإصدار 3.x والإصدار الأحدث من وقت تشغيل الوظائف.

الإجراء نوع
قم بتشغيل وظيفة بناءً على حدث Kafka الجديد. المشغِّل
اكتب لتيار حدث Kafka. ربط الإخراج

تثبيت الملحق

تعتمد حزمة NuGet الملحق التي تقوم بتثبيتها على وضع C# الذي تستخدمه في تطبيق الوظائف:

يتم تنفيذ الوظائف في عملية عامل C# معزولة. لمعرفة المزيد، راجع دليل تشغيل وظائف C# Azure في عملية عامل معزولة.

أضف الملحق إلى مشروعك عن طريق تثبيت حزمة NuGet.

تثبيت الحزمة

لكي تتمكن من استخدام ملحق الربط هذا في تطبيقك، تأكد من أن ملف host.json في جذر مشروعك يحتوي على هذا extensionBundle المرجع:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.0.0, 5.0.0)"
    }
}

في هذا المثال، version ترشد قيمة [4.0.0, 5.0.0) مضيف الوظائف إلى استخدام إصدار حزمة على الأقل 4.0.0 ولكن أقل من 5.0.0، والذي يتضمن جميع الإصدارات المحتملة من 4.x. يحافظ هذا النص بشكل فعال على تطبيقك على أحدث إصدار ثانوي متوفر من مجموعة ملحقات v4.x.

عندما يكون ذلك ممكنا، يجب استخدام أحدث إصدار رئيسي لحزمة الملحقات والسماح لوقت التشغيل بالحفاظ تلقائيا على أحدث إصدار ثانوي. يمكنك عرض محتويات أحدث حزمة في صفحة إصدار حزم الملحقات. لمزيد من المعلومات، راجع حزم ملحقات Azure Functions.

تفعيل قياس وقت التشغيل

للسماح لوظائفك بالتوسع بشكل صحيح في خطة Premium عند استخدام مشغلات وأربطة Kafka، تحتاج إلى تمكين مراقبة مقياس وقت التشغيل.

  1. في مدخل Microsoft Azure، في تطبيق الوظائف، حدد Configuration.

  2. في علامة التبويب إعدادات وقت تشغيل الدالة ، لمراقبة مقياس وقت التشغيل، حدد تشغيل.

    لقطة شاشة لمنطقة مدخل Azure لتمكين تحجيم وقت التشغيل.

إعدادات host.json

يصف هذا القسم إعدادات التكوين المتاحة لهذا الربط في الإصدار 3.x والإصدارات الأحدث. تنطبق الإعدادات في ملف host.json على جميع الوظائف في مثيل تطبيق الوظائف. لمزيد من المعلومات حول إعدادات تكوين تطبيقات الوظائف في الإصدارات 3.x والإصدارات الأحدث، راجع مرجع host.json لـ Azure Functions.

{
    "version": "2.0",
    "extensions": {
        "kafka": {
            "maxBatchSize": 64,
            "SubscriberIntervalInSeconds": 1,
            "ExecutorChannelCapacity": 1,
            "ChannelFullRetryIntervalInMs": 50
        }
    }
}

الخاصية الإعداد الافتراضي نوع ‏‏الوصف
ChannelFullRetryIntervalInMs 50 المشغِّل يحدد الفاصل الزمني لإعادة محاولة المشترك، بالمللي ثانية، المستخدم عند محاولة إضافة عناصر إلى قناة ذات سعة.
ExecutorChannelCapacity 1 الاثنان معاً يحدد سعة رسالة القناة. بمجرد الوصول إلى السعة، يتوقف مشترك Kafka مؤقتاً حتى تدرك الوظيفة.
MaxBatchSize 64 المشغِّل الحد الأقصى لحجم الدُفعة عند استدعاء دالة مشغلة من نوع Kafka.
الاشتراكIntervalInSeconds 1 المشغِّل يحدد الحد الأدنى من التردد الذي يتم فيه تنفيذ الرسائل الواردة، لكل وظيفة بالثواني. فقط عندما يكون حجم الرسالة أقل من MaxBatchSize / SubscriberIntervalInSeconds

الخصائص التالية، الموروثة من مكتبة عميل Apache Kafka C/C ++، مدعومة أيضاً في قسم kafka من host.json، إما للمشغلات أو لكل من روابط الإخراج والمشغلات:

الخاصية ينطبق على ما يعادل librdkafka
AutoCommitIntervalMs المشغِّل auto.commit.interval.ms
AutoOffsetReset المشغِّل auto.offset.reset
FetchMaxBytes المشغِّل fetch.max.bytes
LibkafkaDebug الاثنان معاً debug
MaxPartitionFetchBytes المشغِّل max.partition.fetch.bytes
MaxPollIntervalMs المشغِّل max.poll.interval.ms
MetadataMaxAgeMs الاثنان معاً metadata.max.age.ms
قوائم انتظارMinMessages المشغِّل queued.min.messages
QueuedMaxMessagesKbytes المشغِّل queued.max.messages.kbytes
إعادة الاتصال بالأجهزة الاحتياطية المشغِّل reconnect.backoff.max.ms
إعادة الاتصال بBackoffMaxMs المشغِّل reconnect.backoff.max.ms
SessionTimeoutMs المشغِّل session.timeout.ms
SocketKeepaliveEnable الاثنان معاً socket.keepalive.enable
إحصائياتIntervalMs المشغِّل statistics.interval.ms

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