الأسئلة الشائعة حول تدفق البيانات

أسئلة عامة

ما المقصود بتدفق Oracle Cloud Infrastructure؟

يوفر تدفق Oracle Cloud Infrastructure (OCI) حلًا للمراسلة مدارًا بالكامل وقابلًا للتوسع ودائمًا لاستيعاب تدفقات البيانات المستمرة بكميات كبيرة والتي يمكنك استهلاكها ومعالجتها في الوقت الفعلي. يتوفر التدفق في جميع مناطق Oracle Cloud Infrastructure المدعومة. للحصول على قائمة، تفضل بزيارة صفحة المناطق ونطاقات الإتاحة.

لماذا يجب علي استخدام التدفق؟

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

كيف يمكنني استخدام التدفق؟

يسهل التدفق جمع البيانات وتخزينها ومعالجتها التي يتم إنشاؤها في الوقت الفعلي من مئات المصادر. يكاد يكون عدد حالات الاستخدام غير محدود، بدءًا من المراسلة إلى معالجة تدفقات البيانات المعقدة. فيما يلي بعض الاستخدامات العديدة الممكنة للتدفق:

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

كيف يمكنني بدء استخدام التدفق؟

يمكنك بدء استخدام التدفق كما يلي:

  1. تكوين تدفق باستخدام وحدة تحكم Oracle Cloud Infrastructure أو عملية واجهة برمجة التطبيقات لـ CreateStream.
  2. تكوين المنتجين لنشر الرسائل في التدفق. راجع نشر الرسائل.
  3. بناء مستهلكين لقراءة البيانات ومعالجتها من التدفق. راجع استهلاك الرسائل.

بدلًا من ذلك، يمكنك أيضًا استخدام واجهات برمجة تطبيقات Kafka للإنتاج والاستهلاك من تدفق. لمزيد من المعلومات، يمكنك الرجوع إلى استخدام التدفق باستخدام Apache Kafka.

ما هي حدود الخدمة الخاصة بالتدفق؟

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

  • يعد الحد الأقصى لفترة الاحتفاظ بالرسائل في التدفق سبعة أيام.
  • يعد الحد الأقصى لحجم الرسالة الفريدة التي يمكن إنتاجها لتدفق 1 ميجابايت (MB).
  • يمكن لكل قسم معالجة ما يصل إلى 1 ميجابايت في الثانية من الإنتاجية مع أي عدد من طلبات الكتابات.
  • يمكن لكل قسم دعم إجمالي معدل كتابة البيانات يبلغ 1 ميجابايت في الثانية بحد أقصى ومعدل قراءة يبلغ 2 ميجابايت في الثانية.

كيف تتم مقارنة التدفق بالخدمة المستندة إلى قائمة الانتظار؟

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

المفاهيم الرئيسة

ما المقصود بالتدفق؟

يمثل التدفق سجل رسائل مقسم وملحق فحسب، لتطبيقات المنتجين التي تكتب البيانات بها وتطبيقات المستهلكين التي تقرأ البيانات منها.

ما المقصود بمجمع التدفق؟

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

ما المقصود بالقسم؟

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

ما المقصود بالرسالة؟

تعد الرسالة وحدة بيانات base64 تم ترميزها مخزنة في تدفق. يبلغ الحد الأقصى لحجم الرسالة التي يمكنك إنتاجها لقسم في تدفق 1 ميجابايت.

ما المقصود بالمفتاح؟

يمثل المفتاح معرف يتم استخدامه لتجميع الرسائل ذات الصلة. تتم كتابة الرسائل التي لها نفس المفتاح إلى نفس القسم. يضمن التدفق أن أي مستهلك لقسم معين سيقرأ دائمًا رسائل هذا القسم بنفس الترتيب الذي كُتبت به.

ما المقصود بالمنتِج؟

يعد المنتِج تطبيق عميل يمكنه كتابة رسائل في تدفق.

ما المقصود بالمستهلِك ومجموعة المستهلكين؟

يعد المستهلِك تطبيق عميل يمكنه قراءة الرسائل من تدفق واحد أو أكثر. تمثل مجموعة المستهلكين مجموعة من المثيلات التي تنسق الرسائل من جميع الأقسام في التدفق. في أي وقت محدد، لا يمكن استهلاك الرسائل الواردة من قسم محدد إلا بواسطة مستهلِك واحد في المجموعة.

ما المقصود بالمؤشر؟

يمثل المؤشر مؤشر لموقع في تدفق. قد يكون هذا الموقع مؤشرًا لإزاحة أو وقت محدد في قسم، أو إلى الموقع الحالي لمجموعة.

ما المقصود بالإزاحة؟

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

الأمان

ما مدى أمان بياناتي عند استخدام تدفق Oracle Cloud Infrastructure؟

يوفر التدفق تشفير البيانات افتراضيًا، عند السكون وأثناء النقل على حد سواء. يتم دمج التدفق بالكامل مع Oracle Cloud Infrastructure Identity and Access Management (IAM)، مما يتيح لك استخدام سياسات الوصول لمنح الأذونات بشكل انتقائي للمستخدمين ومجموعات المستخدمين. أثناء استخدام واجهات برمجة تطبيقات REST، يمكنك أيضًا "وضع" البيانات و"الحصول عليها" بشكل آمن من التدفق عبر نقاط انتهاء SSL باستخدام بروتوكول HTTPS. علاوة على ذلك، يوفر التدفق عزلًا كاملًا على مستوى المستأجر للبيانات من دون أي مشكلات من "الجار المزعج".

هل يمكنني استخدام مجموعة المفاتيح الرئيسة الخاصة بي لتشفير البيانات الموجودة في التدفقات؟

يتم تشفير تدفق البيانات في أثناء وجودها على القرص وفي أثناء نقلها على حد سواء، بالإضافة إلى ضمان سلامة الرسائل. يمكنك السماح لـ Oracle بإدارة التشفير، أو استخدام Oracle Cloud Infrastructure Vault لتخزين مفاتيح التشفير الخاصة بك وإدارتها بشكل آمن إذا كنت تريد استيفاء معايير الأمان أو الامتثال المحددة.

ما هي إعدادات أمان مجمع التدفق التي يمكنني تحريرها بعد تكوينها؟

يمكنك تحرير إعدادات تشفير البيانات الخاصة بمجمع التدفق في أي وقت إذا كنت ترغب في التبديل بين استخدام "التشفير المقدم بواسطة مفاتيح Oracle" و"التشفير المدار باستخدام المفاتيح التي يديرها العميل". لا يفرض التدفق أي قيود على عدد مرات تنفيذ هذا النشاط.

كيف أدير الوصول إلى التدفق الخاص بي وأتحكم فيه؟

يتكامل التدفق بالكامل مع Oracle Cloud Infrastructure IAM. لكل تدفق حاوية موارد سحابية معينة. يمكن للمستخدمين تحديد أنظمة التحكم في الوصول المستندة إلى الأدوار والتي يمكن استخدامها لوصف القواعد بالغ الدقة على مستوى الإيجار أو حاوية موارد سحابية أو التدفق الفردي.

يتم تحديد نظام الوصول في شكل "Allow <subject> to <verb> <resource-type> in <location> where <conditions>".

ما آلية التصديق التي يجب أن يستخدمها مستخدمو Kafka في التدفق؟

يستخدم التصديق باستخدام بروتوكول Kafka رموز التصديق وآلية SASL/PLAIN. يمكنك تكوين رموز مميزة في صفحة تفاصيل مستخدم وحدة التحكم. راجع التعامل مع الرموز المميزة للتصديق للحصول على مزيد من المعلومات. نوصي بإنشاء مجموعة/مستخدم مخصص ومنح تلك المجموعة الإذن لإدارة التدفقات في حاوية الموارد السحابية أو الإيجار المناسب. يمكنك بعد ذلك إنشاء رمز مميز للتصديق للمستخدم الذي أنشأته واستخدامه في تكوين عميل Kafka.

هل يمكنني الوصول إلى واجهات برمجة التطبيقات المتدفقة من شبكة السحابة الافتراضية (VCN) دون استخدام عناوين IP العامة؟

تقيد نقاط النهاية الخاصة الوصول إلى شبكة سحابة ظاهرية محددة (VCN) داخل موقع الإيجار حتى لا يمكن الوصول إلى تدفقاتها عبر الإنترنت. تربط نقاط النهاية الخاصة عنوان IP خاص داخل شبكة VCN بمجمع التدفق، مما يسمح لنسبة استخدام التدفق بتجنب اجتياز الإنترنت. لإنشاء نقطة انتهاء خاصة بالتدفق، تحتاج إلى الوصول إلى VCN باستخدام شبكة فرعية خاصة عند إنشاء تجمع التدفق. راجع حول نقاط النهاية الخاصة وشبكات VCN والشبكات الفرعية، للحصول على مزيد من المعلومات.

عمليات التكامل

كيف أستخدم Oracle Cloud Infrastructure Streaming مع Oracle Cloud Infrastructure Object Storage؟

يمكنك كتابة محتويات تدفق مباشرة إلى حزمة تخزين الكائنات، لاستمرار البيانات عادة في التدفق للتخزين طويل الأجل. يمكن تحقيق ذلك باستخدام Kafka Connect لـ S3 مع Streaming. لمزيد من المعلومات، راجع منشور مدونة النشر إلى تخزين الكائنات من Oracle Streaming Service.

كيف استخدم التدفق مع Oracle Autonomous Database؟

يمكنك استيعاب البيانات من جدول في مثيل Oracle Autonomous Transaction Processing. لمزيد من المعلومات، اطلع على منشور مدونة استخدام Kafka Connect with Oracle Streaming Service and Autonomous DB.

كيف يمكنني استخدام التدفق مع Micronaut؟

يمكنك استخدام Kafka SDKs لإنتاج الرسائل واستهلاكها من التدفق، ويمكنك استخدام دعم Micronaut المدمج لـ Kafka. لمزيد من المعلومات، اطلع على منشور مدونة سهولة المراسلة مع دعم Kafka وOracle Streaming Service لـ Micronaut.

كيف يمكنني استخدام التدفق لاستيعاب بيانات إنترنت الأشياء من وسطاء MQTT؟

للحصول على معلومات، اطلع على استيعاب بيانات إنترنت الأشياء من وسطاء MQTT في منشور مدونة OCI-Oracle Streaming Service، وOCI- Kafka Connect Harness، وOracle Kubernetes Engine.

هل Oracle GoldenGate for Big Data متوافقة مع التدفق؟

تم اعتماد Oracle GoldenGate for Big Data الآن للتكامل مع التدفق. لمزيد من المعلومات، يرجى الاطلاع على الاتصال بـ Oracle Streaming Service في وثائق Oracle GoldenGate for Big Data.

هل توجد طريقة لاستيعاب البيانات مباشرة من التدفق إلى Oracle Autonomous Data Warehouse؟

يجب استخدام Kafka JDBC Sink Connect لنقل بيانات التدفق مباشرةً إلى Oracle Autonomous Data Warehouse.

التسعير

كيف تتم محاسبتي على استخدام Oracle Cloud Infrastructure Streaming؟

تستخدم ميزة "التدفق" تسعيرًا بسيطًا قائمًا على الدفع أولاً بأول، مما يضمن لك الدفع مقابل الموارد التي تستخدمها فحسب دون أي تكاليف مسبقة. تتضمن أبعاد التسعير ما يلي:

  • سعر طلب إحضار/إنشاء - جيجابايت من البيانات المنقولة
  • سعر التخزين، المحدد بعدد ساعات فترة الاحتفاظ المستخدمة للاحتفاظ ببياناتك - وحدات جيجابايت من التخزين في الساعة

الرجاء الرجوع إلى صفحة منتج التدفق للحصول على أحدث معلومات التسعير.

هل سيتم تحميلي رسوم التوفير حتى لو لم استخدم الخدمة؟

تضمن الأسعار الرائدة في مجال التدفق الدفع عند استخدام الخدمة فحسب. هذا يعني أنك لا تدفع سعرًا إضافيًا للموارد عندما لا يتم استخدامها.

هل ثمة رسوم إضافية لنقل البيانات داخل التدفق وخارجه؟

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

هل توجد طبقة مجانية للتدفق؟

لا يعمل التدفق حاليًا في الطبقة المجانية.

إدارة تدفقات Oracle Cloud Infrastructure

ما هي أذونات IAM التي أحتاجها للوصول إلى التدفق؟

إدارة الهوية والوصول تتيح لك التحكم فيمن يمكنه الوصول إلى مواردك السحابية. لاستخدام موارد Oracle Cloud Infrastructure، يجب أن تحصل على نوع الوصول المطلوب في سياسة يكتبها المسئول، سواء كنت تستخدم وحدة التحكم أو واجهة برمجة تطبيقات REST مع SDK أو CLI، أو أدوات أخرى. يتم تحديد سياسة الوصول في شكل


Allow <subject> to <verb> <resource-type> in <location> where <conditions>

يمكن لمسئولي الإيجار استخدام السياسة


Allow group StreamAdmins to manage streams in tenancy

مما يتيح لمجموعة محددة StreamAdmins تنفيذ كل شيء باستخدام تدفق يتراوح بين تكوين التدفقات والموارد المرتبطة بها وتحديثها وإدراجها وحذفها. مع ذلك، يمكنك دائمًا تحديد سياسات أكثر تفصيلًا، حتى يكون المستخدمين المحددين فحسب في مجموعة مؤهلًا لمجموعة فرعية فحسب من الأنشطة التي يمكنهم تنفيذها في تدفق محدد. إذا كنت جديدًا على الأنظمة، فراجع البدء في استخدام السياسات والسياسات العامة. إذا أردت التعمق في كتابة الأنظمة للتدفق، يرجى الاطلاع على تفاصيل خدمة التدفق في مرجع سياسة IAM.

كيف يمكنني أتمتة نشر التدفقات على نطاق واسع؟

يمكنك توفير تدفق وجميع المكونات المرتبطة به مثل سياسات IAM، والأقسام، وإعدادات التشفير، وما إلى ذلك، باستخدام Oracle Cloud infrastructure Resource Manager أو موفر Terraform لـ Oracle Cloud Infrastructure. للحصول على معلومات حول موفر Terraform، يرجى الاطلاع على موضوع Terraform لخدمة التدفق.

كيف يمكنني تحديد عدد الأقسام التي أحتاج إليها؟

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

كيف يمكنني إنشاء أقسام وحذفها في تدفق؟

يمكنك إنشاء أقسام عند تكوين تدفق، إما على وحدة التحكم أو برمجيًا.

واجهة مستخدم وحدة التحكم:

8. أسئلة شائعة حول تدفق البيانات الضخمة

برمجيًا كما يلي:

إنشاء تدفق

CreateStreamDetails streamDetails =
        CreateStreamDetails.builder()
                .compartmentId(compartmentId)
                .name(streamName)
                .partitions(partitions)
                .build();

يعد المثال الأكثر تفصيلًا متوفر مع SDK.

يدير التدفق الأقسام داخليًا حتى لا تحتاج إلى إدارتها. لا يمكن للمستخدم حذف مقطع بشكل مباشر. عند حذف تدفق، يتم حذف جميع الأقسام المقترنة بهذا التدفق.

ما أدنى إنتاجية يمكنني طلبها لدفق؟

يتم تحديد إنتاجية تدفق Oracle Cloud Infrastructure من القسم. يوفر القسم إدخال بيانات بمعدل 1 ميجابايت في الثانية ومخرجات بيانات بمعدل 2 ميجابايت في الثانية.

ما أقصى إنتاجية يمكنني طلبها لدفق؟

يمكن زيادة إنتاجية تدفق Oracle Cloud Infrastructure من خلال إضافة المزيد من الأقسام إليه. لا توجد حدود علوية نظرية على عدد الأقسام التي يمكن أن يشتمل عليها التدفق. مع ذلك، يأتي كل إيجار لدى Oracle Cloud Infrastructure بحد تقسيم افتراضي قدره 5 للحسابات من نوع "الأرصدة العامة". إذا كنت بحاجة إلى مزيد من الأقسام، يمكنك دائمًا طلب زيادة حدود الخدمة.

كيف يمكنني زيادة حدود الخدمة للإيجار الخاص بي باستخدام Oracle Cloud Infrastructure Console؟

يمكنك طلب زيادة حد الخدمة باتباع الخطوات التالية:

  1. في الزاوية اليمنى العلوية من وحدة التحكم، افتح قائمة المستخدم وانقر على الإيجار:<tenancy_name>.

    9. أسئلة شائعة حول تدفق البيانات الضخمة
  2. انقر على حدود الخدمة، ثم انقر على طلب زيادة حد الخدمة.

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

ما هي بعض أفضل الممارسات لإدارة التدفقات؟

فيما يلي بعض أفضل الممارسات التي يجب وضعها في الاعتبار أثناء إنشاء تدفق:

  • يجب أن تكون أسماء التدفقات فريدة داخل مجمع التدفقات. هذا يعني أنه يمكنك إنشاء تدفقين بنفس الاسم في نفس حاوية الموارد السحابية إذا كانا في مجمعات تدفق مختلفة فحسب.
  • بعد إنشاء التدفق، لا يمكنك تغيير عدد الأقسام فيه. نوصي بتخصيص أقسام أعلى قليلًا من الحد الأقصى للإنتاجية. يمكن أن يساعدك ذلك في إدارة الزيادات المفاجئة في التطبيق.
  • لا يمكن تغيير فترة الاحتفاظ بتدفق بعد تكوينها. بشكل افتراضي، يتم تخزين البيانات في تدفق لمدة 24 ساعة. مع ذلك، يمكن تكوينها للاحتفاظ بالبيانات في أي مكان بين 24 و168 ساعة. لا يؤثر مقدار البيانات المخزنة في التدفق على أداء التدفق.

إنتاج رسائل لتدفق Oracle Cloud Infrastructure

كيف يمكنني إنشاء رسائل لتدفق؟

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

بالنسبة لوحدة التحكم: انتقل إلى قسم خدمة التدفق في وحدة التحكم، الموجودة ضمن علامة التبويب تحليلات الحلول والمنصات. إذا كان لديك تدفقات مكونة بالفعل، فحدد تدفقًا في حاوية موارد سحابية وانتقل إلى صفحة "بيانات التدفق". انقر زر "إنشاء رسالة اختبار" في وحدة التحكم. سيؤدي ذلك إلى تعيين مفتاح تقسيم بشكل عشوائي للرسالة مع الكتابة إلى قسم في التدفق. يمكنك عرض هذه الرسالة في قسم الرسائل الحديثة بنقر زر تحميل الرسائل.

بالنسبة لواجهات برمجة التطبيقات: يمكنك استخدام واجهات برمجة تطبيقات التدفق لـ Oracle Cloud Infrastructure أو واجهات برمجة تطبيقات Kafka للإنتاج إلى تدفق. سيتم نشر الرسالة إلى قسم في التدفق. إذا كان ثمة أكثر من قسم واحد، فيمكنك تحديد مفتاحًا لاختيار القسم الذي تريد إرسال الرسالة إليه، وإذا لم تحدد مفتاحًا، يعين التدفق مفتاحًا لك بإنشاء UUID وإرسال الرسالة إلى قسم عشوائي. يضمن هذا توزيع الرسائل بدون مفتاح بالتساوي عبر جميع الأقسام. مع ذلك، نوصي دائمًا بتحديد مفتاح رسالة حتى يمكنك التحكم في استراتيجية التقسيم لبياناتك بوضوح.

توجد أمثلة حول طريقة إنتاج رسائل إلى تدفق باستخدام وحدات SDK للتدفق في الوثائق.

كيف أعرف القسم الذي سيستخدمه المنتِج؟

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

مع ذلك، إذا كنت تستخدم واجهات برمجة تطبيقات Kafka للإنتاج إلى تدفق، يتم التحكم في التقسيم بواسطة عميل Kafka والمقسم في عميل Kafka هو المسؤول عن منطق التقسيم. يُسمى هذا التقسيم من جانب العميل.

كيف يمكنني إنشاء مفتاح تقسيم فعال؟

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

  • مجموعة الأعداد: ضع في الاعتبار إجمالي عدد المفاتيح الفريدة التي يمكن إنشاؤها استنادًا إلى حالة استخدام محددة. بشكل عام، تعني مجموعة الأعداد للمفتاح الأعلى توزيعًا أفضل.
  • الانتقائية: ضع في الاعتبار عدد الرسائل مع كل مفتاح. تعني الانتقائية الأعلى المزيد من الرسائل لكل مفتاح، مما قد تؤدي إلى النقاط الفعالة.

تهدف دائمًا إلى مجموعة أعداد عالية وانتقائية منخفضة.

كيف يمكنني التأكد من تسليم الرسائل إلى المستهلكين بنفس الترتيب الذي يتم إنتاجها به؟

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

كيف يمكن أن يؤثر حجم الرسالة على إنتاجية التدفق؟

يوفر القسم معدل إدخال بيانات يبلغ 1 ميجابايت/ثانية ويدعم ما يصل إلى 1000 رسالة "إنشاء" في الثانية. بالتالي، إذا كان حجم السجل أقل من 1 كيلوبايت، فسيكون معدل إدخال البيانات الفعلي لقسم أقل من 1 ميجابايت/ثانية، محددًا بالحد الأقصى لعدد رسائل "إنشاء" في الثانية. نوصي بإصدار رسائل في مجموعات للأسباب التالية:

  • تقلل من عدد طلبات الإنشاء المرسلة إلى الخدمة، والتي تتجنب التقييد.
  • تتيح إنتاجية أفضل.

يجب ألا يتجاوز حجم مجموعة الرسائل 1 ميجابايت. في حالة تجاوز هذا الحد، يتم تشغيل آلية التقييد.

كيف يمكنني التعامل مع الرسائل الأكبر من 1 ميجابايت؟

يمكنك إما استخدام التقسيم أو إرسال الرسالة باستخدام Oracle Cloud Infrastructure Object Storage.

  • التقسيم: يمكنك تقسيم الحمولات الكبيرة إلى حزم متعددة أصغر يمكن أن يقبلها التدفق. يتم تخزين الحزم في الخدمة بنفس الطريقة التي يتم بها تخزين الرسائل العادية غير المُقسمة. يمثل الفرق الوحيد أنه يجب على المستهلِك الاحتفاظ بالحزم ودمجها في الرسالة عندما يتم جمع جميع الحزم. يمكن تداخل الحزم في القسم بالرسائل العادية.
  • تخزين الكائنات: يتم وضع حمولة كبيرة في تخزين الكائنات ويتم نقل المؤشر إلى تلك البيانات فحسب. يتعرف المستقبِل على هذا النوع من حمولة المؤشر، ويقرأ البيانات بشفافية من تخزين الكائنات، ويوفرها للمستخدم النهائي.

ماذا يحدث إذا قمت بإنتاج بمعدل أكبر مما يسمح به القسم؟

عند إنتاج منتِج بمعدل أكبر من 1 ميجابايت في الثانية، يتم تقييد الطلب وإعادة إرسال خطأ 429، الطلبات الكثيرة جدًا إلى العميل مما يشير إلى استلام عدد كبير جدًا من الطلبات في الثانية لكل قسم.

استهلاك رسائل من تدفق Oracle Cloud Infrastructure

كيف يمكنني قراءة البيانات من تدفق؟

يعد المستهلِك كيانًا يقرأ الرسائل من تدفق واحد أو أكثر. يمكن أن يوجد هذا الكيان بمفرده أو يكون جزءًا من مجموعة مستهلكين. لاستهلاك الرسائل، يجب إنشاء مؤشر ثم استخدام ذلك المؤشر لقراءة الرسائل. يشير المؤشر لموقع في تدفق. قد يكون هذا الموقع إزاحة أو وقت محدد في قسم، أو موقع حالي لمجموعة. تبعًا للموقع الذي تريد القراءة منه، توجد أنواع مؤشرات متعددة متاحة: TRIM_HORIZON وAT_OFFSET وAFTER_OFFSET وAT_TIME وLATEST.

لمزيد من المعلومات، ارجع إلى الوثائق الخاصة برسائل الاستهلاك.

ما الحد الأقصى لعدد الرسائل التي يمكنني استهلاكها من تدفق في أي نقطة زمنية محددة؟

تُرجع طريقة getLimit( ) الخاصة بفئة GetMessagesRequest الحد الأقصى لعدد الرسائل. يمكنك تحديد أي قيمة تصل إلى 10,000. بشكل افتراضي، ترجع الخدمة أكبر عدد ممكن من الرسائل. فكّر في متوسط حجم الرسالة لتجنب تجاوز الإنتاجية على التدفق. تعتمد أحجام مجموعات تدفق GetMessages على متوسط حجم الرسالة الناتجة إلى التدفق المحدد.

كيف يمكنني تجنب تكرار الرسائل مع المستهلكين لدي؟

يوفر التدفق دلالات تسليم "مرة واحدة" على الأقل للمستهلكين. نوصي أن ترعى التطبيقات الاستهلاكية التكرارات. على سبيل المثال، عندما يقوم مثيل غير نشط سابقًا من مجموعة المستهلكين بإعادة الانضمام إلى المجموعة وبدء استهلاك الرسائل التي لم يتم تثبيتها بواسطة المثيل المخصص مسبقًا، تكون هناك فرصة لمعالجة التكرارات.

كيف أعرف إذا كان المستهلِك متأخرًا؟

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

تمعّن في الخيارات التالية:

  • زيادة عدد الأقسام في التدفق.
  • إذا كانت المشكلة ناتجة عن نقطة فعالة، فقم بتغيير استراتيجية مفتاح الرسالة.
  • تقليل وقت معالجة الرسائل أو معالجة الطلبات بالتوازي.

إذا كنت تريد معرفة عدد الرسائل التي يتم تركها لاستهلاكها في قسم معين، فاستخدم مؤشرًا من النوع LATEST، واحصل على إزاحة الرسالة المنشورة التالية، وقم بعمل اتصال دلتا مع الإزاحة التي تستهلكها حاليًا. نظرًا إلى عدم وجود إزاحة كثيفة، يمكنك الحصول على تقدير تقريبي فحسب. مع ذلك، إذا توقف المنتِج عن الإنتاج، فلن تتمكن من الحصول على هذه المعلومات لأنك لن تحصل أبدًا على إزاحة الرسالة المنشورة التالية.

كيف تعمل مجموعات المستهلكين؟

يمكن تكوين المستهلكين لاستهلاك الرسائل كجزء من مجموعة. يتم توزيع أقسام التدفق بين أعضاء مجموعة حتى يتم إرسال الرسائل من أي قسم واحد فحسب إلى مستهلِك واحد. تتم إعادة موازنة تخصيصات الأقسام لأن المستهلكين ينضمون إلى المجموعة أو يغادرونها. لمزيد من المعلومات، ارجع إلى الوثائق الخاصة بمجموعات المستهلكين.

لماذا يجب عليّ استخدام مجموعات المستهلكين؟

توفر مجموعات المستهلكين المزايا التالية:

  • يتلقى كل مثيل في مجموعة المستهلكين رسائل من قسم واحد أو أكثر يتم تخصيصها "آليًا" إليها، ولا يتم استلام نفس الرسائل بواسطة المثيلات الأخرى (التي يتم تخصيصها إلى أقسام مختلفة). بهذه الطريقة، يمكننا قياس عدد المثيلات حتى عدد الأقسام من خلال وجود مثيل واحد يقرأ مقطعًا واحدًا فقط. في هذه الحالة، ينضم المثيل الجديد إلى المجموعة في حالة الخمول دون تعيينه لأي قسم.
  • يعني وجود مثيلات كجزء من مجموعات مستهلكين مختلفة التي توفر نمط النشر والاشتراك، إذ يتم إرسال الرسائل من الأقسام إلى كل المثيلات عبر المجموعات المختلفة.
    داخل نفس مجموعة المستهلكين، يتم عرض القواعد في الصورة التالية:
    11. أسئلة شائعة حول تدفق البيانات الضخمة

    عبر مجموعات مختلفة، وتتلقى المثيلات نفس الرسائل، كما هو موضح في الصورة التالية:
    12. أسئلة شائعة حول تدفق البيانات الضخمة
    يكون ذلك مفيدًا عندما تكون الرسائل الموجودة داخل قسم ذات أهمية للتطبيقات المختلفة التي ستعالجها بطرق مختلفة. نريد أن تتلقى جميع التطبيقات المعنية نفس الرسائل من القسم.
  • عندما ينضم مثيل إلى مجموعة، إذا توفرت أقسام كافية (أي، لم يتم الوصول إلى حد مثيل واحد لكل قسم)، تبدأ إعادة التوازن. تتم إعادة تعيين الأقسام إلى المثيلات الموجودة، بالإضافة إلى المثيل الجديد. بنفس الطريقة، إذا ترك أحد المثيلات مجموعة، تتم إعادة تعيين الأقسام إلى المثيلات المتبقية.
  • تتم إدارة عمليات تثبيت الإزاحة تلقائيًا.

هل يوجد حد لعدد مجموعات المستهلكين التي يمكنني الحصول عليها لكل تدفق؟

يوجد حد أقصى قدره 50 مجموعة مستهلكين لكل تدفق. تعد مجموعات المستهلكين مؤقتة. تختفي عندما لا يتم استخدامها لفترة الاحتفاظ الخاصة بالتدفق.

ما هي المهلات التي أحتاج إلى معرفتها أثناء استخدام المستهلكين ومجموعات المستهلكين؟

تحتوي المكونات التالية للتدفق على المهلات:

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

ما المقصود بإعادة التوازن داخل مجموعة المستهلكين؟

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

ما الذي يشغل نشاط إعادة التوازن داخل مجموعة مستهلكين؟

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

كيف يمكنني التعافي من إخفاق المستهلك؟

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


ملاحظة: لا تخزن المؤشر؛ إذ تنتهي صلاحيته بعد 5 دقائق.


لا نقدم أي إرشادات لتخزين إزاحة الرسالة الأخيرة التي قمت بمعالجتها، حتى تتمكن من استخدام أي طريقة تريدها. على سبيل المثال، يمكنك تخزين المؤشر على تدفق آخر أو ملف على جهاز ظاهري أو حزمة تخزين كائنات. عند إعادة تشغيل المستهلِك، اقرأ إزاحة الرسالة الأخيرة التي قمت بمعالجتها ثم قم بإنشاء مؤشر من النوع AFTER_OFFSET وحدد الإزاحة التي حصلت عليها للتو.

توافق Kafka لـ Oracle Cloud Infrastructure Streaming

كيف يمكنني دمج تطبيق Kafka الحالي مع التدفق؟

توفر خدمة التدفق نقطة انتهاء Kafka التي يمكن استخدامها من التطبيقات الموجودة المستندة إلى Apache Kafka. يعد التغيير بالتكوين كل ما هو مطلوب من أجل الحصول على تجربة Kafka مُدارة بالكامل. يوفر توافق Streaming's Kafka بديلًا لتشغيل مجموعة Kafka الخاصة بك. يدعم التدفق إصدار Apache Kafka 1.0 وإصدارات العملاء الأحدث، ويعمل مع تطبيقات Kafka وأدوات وأطر العمل الحالية.

ما تغييرات بالتكوين التي يجب إجراؤها لكي يتفاعل تطبيق Kafka الحالي مع التدفق؟

سيتمكن العملاء الذين لديهم تطبيقات Kafka حالية من الترحيل إلى التدفق بمجرد تغيير المعلمات التالية لملف تكوين Kafka.

security.protocol: SASL_SSL
sasl.mechanism: PLAIN
sasl.jaas.config: org.apache.kafka.common.security.plain.PlainLoginModule required username="{username}" password="{pwd}";
bootstrap.servers: kafka.streaming.{region}.com:9092
# Application settings
topicName: [streamOcid]

كيف يمكنني استخدام Kafka Connect مع التدفق؟

لاستخدام موصلات Kafka مع التدفق، قم بإنشاء تكوين Kafka Connect باستخدام وحدة التحكم أو واجهة سطر الأوامر (CLI). تستدعي واجهة برمجة تطبيقاتالتدفقمهمات التكوينات هذه. تم إنشاء تكوينات Kafka Connect في حاوية موارد سحابية معينة تعمل للتدفقات في نفس الحاوية فحسب. يمكنك استخدام موصلات Kafka متعددة بنفس تكوين Kafka Connect. في الحالات التي تتطلب إنتاج أو استهلاك التدفقات في حاويات موارد سحابية منفصلة، أو حيث تكون هناك حاجة إلى مزيد من السعة لتجنب الوصول إلى حدود التقييد في تكوين Kafka Connect (على سبيل المثال، العديد من الموصلات أو الموصلات التي تحتوي على الكثير من العمال)، يمكنك إنشاء المزيد من تكوينات Kafka Connector.

ما هي عمليات التكامل مع منتجات الطرف الأول والطرف الثالث التي يوفرها التدفق؟

يعني توافق Kafka Connect للتدفق أنه يمكنك الاستفادة من العديد من موصلات الطرف الأول والثالث الموجودة لنقل البيانات من مصادرك إلى أهدافك. تشتمل موصلات Kafka لمنتجات Oracle على:

للحصول على قائمة كاملة بموصلات المصادر والتخزين الخاصة بـ Kafka، راجع مركز Confluent Kafka الرسمي.

مراقبة تدفقات Oracle Cloud Infrastructure

أين يمكنني مراقبة التدفق الخاص بي؟

يتكامل التدفق بالكامل مع Oracle Cloud Infrastructure Monitoring. في وحدة التحكم، حدد التدفق الذي تريد مراقبته. ضمن صفحة بيانات التدفق، انتقل إلى قسم الموارد، ثم انقر على إنتاج الرسومات البيانية للمراقبة لمراقبة طلبات المنتج. أو انقر على الرسوم البيانية لمراقبة الاستهلاك لمراقبة القياسات من جانب المستهلك. تتوفر القياسات على مستوى التدفق وليس على مستوى القسم. للحصول على وصف لقياسات التدفق المدعومة، راجع الوثائق.

ما الإحصائيات المتوفرة عند مراقبة التدفق؟

يوفر كل قياس متوفر في وحدة التحكم الإحصائيات التالية:

  • المعدل والإجمالي والمتوسط
  • حد أدنى وحد أقصى والعدد
  • P50 وP90 وP95 وP99 وP99.9

يتم توفير هذه الإحصائيات للفترات الزمنية التالية:

  • تلقائي
  • دقيقة واحدة
  • 5 دقائق
  • ساعة واحدة

ما المقاييس التي يجب أن أضع تنبيهات لها عادة؟

بالنسبة للمنتِجين، ضع في اعتبارك وضع تنبيهات على المقاييس التالية:

  • زمن وصول إنشاء الرسائل: زيادة زمن الوصول تعني أن الرسائل تستغرق وقتًا أطول للنشر، مما قد يشير إلى مشكلات في الشبكة.
  • إجمالي إنتاجية إنشاء الرسائل:
    • يمكن أن تشير زيادة هامة في إجمالي الإنتاجية إلى أنه سيتم الوصول إلى 1 ميجابايت في الثانية لكل حد تقسيم، وسيؤدي هذا الحدث إلى تشغيل آلية التقييد.
    • قد يعني الانخفاض الهام أن منتج العميل يواجه مشكلة أو على وشك التوقف.
  • سجلات تقييد إنشاء الرسائل: من المهم الحصول على إشعارات عند تقييد الرسائل.
  • إخفاق في إنشاء الرسائل: من المهم الحصول على إشعار في حالة بدء إخفاق وضع الرسائل حتى يتمكن فريق العمليات من بدء التحقيق في الأسباب.

بالنسبة للمستهلِكين، ضع في اعتبارك وضع تنبيهات على المقاييس التالية:

  • زمن وصول الحصول على الرسائل
  • الحصول على إجمالي إنتاجية الرسائل
  • الحصول على طلبات تقييد الرسائل
  • إخفاق في الحصول على الرسائل

كيف أعرف أن التدفق الخاص بي سليم؟

يكون التدفق سليم عندما يكون في حالة نشطة. إذا كان بإمكانك الإنتاج إلى التدفق الخاص بك، وإذا حصلت على استجابة ناجحة، فسيكون التدفق سليمًا. بعد إنشاء البيانات في التدفق، يمكن للمستهلِكين الوصول إليها خلال فترة الاحتفاظ التي تم تكوينها. إذا نتج عن استدعاءات واجهة برمجة التطبيقات (API) GetMessages مستويات متميزة من أخطاء الخادم الداخلية، فلن تكون الخدمة سليمة.

كما يحتوي التدفق السليم على المقاييس السليمة التالية:

  • يعد زمن وصول إنشاء الرسائل منخفضًا.
  • إجمالي إنتاجية إنشاء الرسائل قريبة من 1 ميجابايت في الثانية لكل قسم.
  • سجلات تقييد إنشاء الرسائل قريبة من 0.
  • إخفاق إنشاء الرسائل قريب من 0.

  • يعد زمن وصول الحصول على الرسائل منخفضًا.
  • إجمالي إنتاجية الحصول على الرسائل قريبة من 1 ميجابايت في الثانية لكل قسم.
  • طلبات تقييد الحصول على الرسائل قريبة من 0.
  • إخفاق الحصول على الرسائل قريب من 0.

متى يتم تقييد الرسائل في التدفق؟

يشير التقييد إلى أن التدفق غير قادر على التعامل مع أي عمليات قراءة أو كتابة جديدة. يتم تنشيط آلية التقييد عند تجاوز الحدود التالية:

  • GetMessages: خمسة استدعاءات في الثانية أو 2 ميجابايت في الثانية لكل قسم
  • PutMessages: 1 ميجابايت في الثانية لكل قسم
  • عمليات إدارة ومستوى التحكم، مثل CreateCursor وListStream، إلخ: خمسة استدعاءات في الثانية لكل تدفق

أين يمكنني العثور على قائمة أخطاء واجهة برمجية التطبيقات؟

توجد تفاصيل حول أخطاء واجهة برمجية التطبيقات في الوثائق.