نسخ البيانات من نظام مجموعة Kafka إلى مراكز الأحداث باستخدام Apache Kafka Mirror Maker 2
يوضح هذا البرنامج التعليمي كيفية نسخ البيانات من مجموعة Kafka موجودة إلى Azure Event Hubs باستخدام Mirror Maker 2.
ملاحظة
تلك العينة متاحة على GitHub
في هذا البرنامج التعليمي، تتعلم كيفية:
- إنشاء مساحة اسم لـ Event Hubs
- إعداد أو استخدام نظام مجموعة Kafka موجود
- تكوين Kafka Mirror Maker 2
- تشغيل Kafka Mirror Maker 2
مقدمة
تم تصميم Apache Kafka MirrorMaker 2.0 (MM2) لتسهيل عكس الموضوعات أو نسخها نسخا متماثلا من مجموعة Kafka إلى أخرى. يستخدم Mirror Maker إطار عمل Kafka Connect لتبسيط التكوين والتحجيم. لمزيد من المعلومات التفصيلية حول Kafka MirrorMaker، راجع دليل Kafka Mirroring/MirrorMaker.
نظرا لأن مراكز الأحداث متوافقة مع بروتوكول Apache Kafka، يمكنك استخدام Mirror Maker 2 لنسخ البيانات نسخا متماثلا بين مجموعة Kafka موجودة ومساحة اسم مراكز الأحداث.
يكشف Mirror Maker 2 ديناميكيا عن التغييرات التي تطرأ على الموضوعات ويضمن مزامنة خصائص الموضوع المصدر والهدف، بما في ذلك الإزاحات والأقسام. يمكن استخدامه لنسخ البيانات نسخا متماثلا ثنائي الاتجاه بين مجموعة Kafka ومساحة اسم مراكز الأحداث.
المتطلبات الأساسية
لإكمال هذا البرنامج التعليمي، تأكد من أن لديك:
- اقرأ مقالة مراكز الأحداث لمقالة Apache Kafka.
- اشتراك Azure. في حال لم يكن لديك اشتراك Azure، أنشئ حسابًا مجّانيًّا قبل البدء.
- حزمة تطوير Java (JDK)1.7+
- فيما يتعلق بـ Ubuntu، قم بتشغيل
apt-get install default-jdk
لتثبيت JDK. - تأكد من ضبط متغير بيئة التشغيل JAVA_HOME ليشير إلى المجلد حيث تم تثبيت JDK.
- فيما يتعلق بـ Ubuntu، قم بتشغيل
- قم بتنزيل ثم تثبيت أرشيف Maven ثنائي
- على Ubuntu، يمكنك تشغيل
apt-get install maven
لتثبيت Maven.
- على Ubuntu، يمكنك تشغيل
- Git
- على Ubuntu، يمكنك تشغيل
sudo apt-get install git
لتثبيت Git.
- على Ubuntu، يمكنك تشغيل
- توزيع Apache Kafka
- قم بتنزيل توزيع Apache Kafka المفضل (الذي يجب أن يحتوي على توزيع Mirror Maker 2.)
إنشاء مساحة اسم لـ Event Hubs
مطلوب مساحة اسم Event Hubs للإرسال والاستلام من أي خدمة Event Hubs. راجع إنشاء مركز أحداث للحصول على إرشادات حول إنشاء مساحة اسم ومركز أحداث. تأكد من نسخ سلسلة اتصال Event Hubs لاستخدامها لاحقاً.
استنساخ مثال للمشروع
الآن بعد أن أصبح لديك سلسلة اتصال Event Hubs، قم باستنساخ Azure Event Hubs لمستودع Kafka وانتقل إلى المجلد الفرعي mirror-maker-2
:
git clone https://github.com/Azure/azure-event-hubs-for-kafka.git
cd azure-event-hubs-for-kafka/tutorials/mirror-maker-2
إعداد أو استخدام نظام مجموعة Kafka موجود
إذا لم يكن لديك نظام مجموعة Kafka موجود، فاستخدم دليل التشغيل السريع Kafka لإعداد نظام مجموعة Kafka بالإعدادات المطلوبة (أو استخدام نظام مجموعة Kafka موجود). لأغراض الاختبار، يمكنك أيضا إنشاء موضوعين في مجموعة Kafka التي تم إنشاؤها حديثا ونشر البيانات إليها.
إذا كان لديك بالفعل مجموعة Kafka موجودة محليا أو في خدمة سحابة Kafka مدارة، فيمكنك استخدامها لنسخ البيانات الموجودة إلى مراكز الأحداث.
تكوين Kafka Mirror Maker 2
يأتي توزيع Apache Kafka مع connect-mirror-maker.sh
برنامج نصي مجمع مع مكتبة Kafka التي تنفذ مجموعة Mirror Maker 2 الموزعة. يدير Connect workers داخليا استنادا إلى ملف تكوين. يقوم برنامج تشغيل MirrorMaker داخليا بإنشاء ومعالجة أزواج من كل موصل - MirrorSource Connector و MirrorSink Connector و MirrorCheckpoint Connector و MirrorHeartbeat Connector.
لتكوين Mirror Maker 2 لنسخ البيانات نسخا متماثلا، تحتاج إلى تحديث ملف
kafka-to-eh-connect-mirror-maker.properties
تكوين Mirror Maker 2 لتعريف مخطط النسخ المتماثل.في
kafka-to-eh-connect-mirror-maker.properties
ملف التكوين، حدد الأسماء المستعارة لنظام المجموعة التي تخطط لاستخدامها لمجموعة Kafka (المصدر) ومراكز الأحداث (الوجهة).# cluster aliases clusters = source, destination
ثم حدد معلومات الاتصال لمصدرك، وهو نظام مجموعة Kafka الخاص بك.
source.bootstrap.servers = your-kafka-cluster-hostname:9092 #source.security.protocol=SASL_SSL #source.sasl.mechanism=PLAIN #source.sasl.jaas.config=<replace sasl jaas config of your Kafka cluster>;
حدد معلومات الاتصال للوجهة، وهي مساحة اسم مراكز الأحداث التي قمت بإنشائها.
destination.bootstrap.servers = <your-enventhubs-namespace>.servicebus.windows.net:9093 destination.security.protocol=SASL_SSL destination.sasl.mechanism=PLAIN destination.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username='$ConnectionString' password='<Your Event Hubs namespace connection string.>';
تمكين تدفق النسخ المتماثل من مجموعة Kafka المصدر إلى مساحة اسم مراكز الأحداث الوجهة.
source->destination.enabled = true source->destination.topics = .*
قم بتحديث عامل النسخ المتماثل للمواضيع البعيدة والموضوعات الداخلية التي ينشئها Mirror Maker في الوجهة.
replication.factor=3 checkpoints.topic.replication.factor=3 heartbeats.topic.replication.factor=3 offset-syncs.topic.replication.factor=3 offset.storage.replication.factor=3 status.storage.replication.factor=3 config.storage.replication.factor=3
ثم يمكنك نسخ
kafka-to-eh-connect-mirror-maker.properties
ملف التكوين إلى دليل تكوين توزيع Kafka ويمكنك تشغيل البرنامج النصي Mirror Maker 2 باستخدام الأمر التالي../bin/connect-mirror-maker.sh ./config/kafka-to-eh-connect-mirror-maker.properties
عند التنفيذ الناجح للبرنامج النصي، يجب أن ترى مواضيع Kafka والأحداث التي يتم نسخها نسخا متماثلا إلى مساحة اسم مراكز الأحداث.
للتحقق من أن الأحداث تعمل على الوصول إلى مراكز الأحداث الممكنة ل Kafka، تحقق من إحصائيات الدخول في مدخل Microsoft Azure، أو قم بتشغيل مستهلك مقابل مراكز الأحداث.
عينات
راجع العينات التالية على GitHub:
التعليمة البرمجية النموذجية لهذا البرنامج التعليمي على GitHub
إذا كنت تستضيف Apache Kafka على Kubernetes باستخدام عامل تشغيل CNCF Strimzi، يمكنك استخدام نموذج Strimzi Mirror Maker 2 لمراكز الأحداث.
الخطوات التالية
لمعرفة المزيد حول Event Hubs لـ Kafka، راجع المقالات التالية: