من الفقرة المقدمة ، قم بإدراج APIs الرئيسية في كافكا. افصل بينهما بفترة.
Context:يخزن كافكا الرسائل ذات القيمة الرئيسية التي تأتي من العديد من العمليات التي تسمى المنتجين. يمكن تقسيم البيانات إلى "قسامات" مختلفة ضمن "مواضيع" مختلفة. داخل القسم ، يتم ترتيب الرسائل بدقة من خلال الانزلاق (موقع الرسالة داخل القسم) ، ويتم فهرستها وتخزينها مع ختم زمني. عمليات أخرى تسمى "المستهلكين" يمكن أن تقرأ الرسائل من القسمات. لمعالجة التدفق ، يقدم كافكا واجهة برمجة تطبيقات Streams التي تسمح بكتابة تطبيقات Java التي تستهلك البيانات من كافكا وتكتب النتائج إلى كافكا. يعمل Apache Kafka أيضًا مع أنظمة معالجة التدفقات الخارجية مثل Apache Apex و Apache Beam و Apache Flink و Apache Spark و Apache Storm و Apache NiFi.  يتم تشغيل Kafka على مجموعة من خادم واحد أو أكثر (يسمى وسطاء) ، وتوزع أقسام جميع المواضيع عبر عقدة المجموعة. بالإضافة إلى ذلك ، يتم تكرار الأقسام إلى وسطاء متعددين. تسمح هذه الهندسة المعمارية لـ Kafka بتقديم تيارات ضخمة من الرسائل بطريقة متسامحة مع الأخطاء وقد سمحت لها باستبدال بعض أنظمة المراسلة التقليدية مثل خدمة رسائل Java (JMS) ، بروتوكول ترتيب الرسائل المتقدم (AMQP) ، وما إلى ذلك. منذ إصدار 0.11.0.0 ، تقدم Kafka كتابات معاملاتية ، والتي توفر معالجة تدفق مرة واحدة بالضبط باستخدام واجهة برمجة تطبيقات Streams.  يدعم كافكا نوعين من المواضيع: منتظمة ومضغوطة. يمكن تكوين المواضيع العادية مع وقت الاحتفاظ أو مساحة محددة. إذا كان هناك سجلات أقدم من وقت الاحتفاظ المحدد أو إذا تم تجاوز حدود المساحة بالنسبة لقسم ، يُسمح لـ Kafka بحذف البيانات القديمة لتحرير مساحة التخزين. بشكل افتراضي، يتم تكوين المواضيع مع وقت الاحتفاظ من 7 أيام، ولكن من الممكن أيضا لتخزين البيانات إلى أجل غير مسمى. بالنسبة للمواضيع المضغوطة، السجلات لا تنتهي بناءً على حدود الزمن أو الفضاء. بدلاً من ذلك، يعامل كافكا الرسائل اللاحقة على أنها تحديثات للرسائل القديمة بنفس المفتاح ويضمن عدم حذف أحدث رسالة لكل مفتاح. يمكن للمستخدمين حذف الرسائل بالكامل من خلال كتابة ما يسمى رسالة الحجر التمهيدي مع قيمة باطلة لمفتاح معين.  هناك خمسة واجهات برمجة برمجة أساسية في كافكا:  واجهة برمجة تطبيقات المنتج <unk> تسمح لتطبيق بنشر تدفقات السجلات. برنامج برمجة تطبيقات المستهلك <unk> يسمح للتطبيق بالاشتراك في الموضوعات ومعالجة تدفقات السجلات. واجهة برمجة تطبيقات الاتصال <unk> تنفيذ واجهة برمجة تطبيقات المنتج والمستهلك القابلة لإعادة الاستخدام والتي يمكن أن تربط الموضوعات بالتطبيقات الحالية. API التدفقات <unk> تقوم هذه API بتحويل تدفقات المدخلات إلى مخرجات وتنتج النتيجة. API الإداري <unk> يستخدم لإدارة مواضيع كافكا، والوسطاء، وغيرها من الكائنات كافكا. يتم فصل واجهات برمجة تطبيقات المستهلك والمنتج عن الوظائف الأساسية لكافكا من خلال بروتوكول المراسلة الأساسي. هذا يسمح بكتابة طبقات API متوافقة في أي لغة برمجة تكون فعالة مثل واجهات برمجة تطبيقات Java المجمعة مع Kafka. يحتفظ مشروع Apache Kafka بقائمة من واجهات برمجة تطبيقات الطرف الثالث.
واجهة برمجة تطبيقات المنتج، واجهة برمجة تطبيقات المستهلك، واجهة برمجة تطبيقات الموصل، واجهة برمجة تطبيقات التدفقات، واجهة برمجة تطبيقات الإدارة