ارتباطات 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.

تثبيت الحزمة

يعد ملحق Kafka جزءاً من حزمة الملحقالمحددة في ملف مشروع host.json الخاص بك. عند إنشاء مشروع يستهدف الإصدار 3.x من الوظائف أو إصدار لاحق، يجب أن تكون هذه الحزمة مثبتة بالفعل. لمعرفة المزيد، راجع حزمة الإضافات.

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

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

في مدخل Microsoft Azure، في تطبيق وظيفتك، اختر Configuration وفي علامة التبويب Function runtime settings، قم بتشغيل Runtime scale monitoring إلى On.

لقطة شاشة للوحة مدخل Microsoft 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.
SubscriberIntervalInSeconds 1 المشغِّل يحدد الحد الأدنى من التردد الذي يتم فيه تنفيذ الرسائل الواردة، لكل وظيفة بالثواني. فقط عندما يكون حجم الرسالة أقل من MaxBatchSize / SubscriberIntervalInSeconds

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

الخاصية ينطبق على librdkafka equivalent
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
QueuedMinMessages المشغِّل queued.min.messages
QueuedMaxMessagesKbytes المشغِّل queued.max.messages.kbytes
ReconnectBackoffMs المشغِّل reconnect.backoff.max.ms
ReconnectBackoffMaxMs المشغِّل reconnect.backoff.max.ms
SessionTimeoutMs المشغِّل session.timeout.ms
SocketKeepaliveEnable الاثنان معاً socket.keepalive.enable
StatisticsIntervalMs المشغِّل statistics.interval.ms

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