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