إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
Azure Cosmos DB هو خدمة قاعدة بيانات NoSQL مدارة بالكامل مقدمة من مايكروسوفت. يتيح لك بناء تطبيقات موزعة عالميا وقابلة للتوسع بسهولة. يرشدك هذا الدليل خلال عملية إنشاء تطبيق جافا يستخدم قاعدة بيانات Azure Cosmos لقاعدة بيانات NoSQL وينفذ معالج تغذية التغيير لمعالجة البيانات في الوقت الحقيقي. يتواصل تطبيق جافا مع قاعدة بيانات Azure Cosmos ل NoSQL باستخدام Azure Cosmos DB Java SDK v4.
مهم
هذا الدرس مخصص فقط للعبة Azure Cosmos DB Java SDK v4. يرجى الاطلاع على ملاحظات إصدار Azure Cosmos DB Java SDK v4، مستودع Maven، معالج Change feed في Azure Cosmos DB، ودليل حلول Azure Cosmos DB Java SDK v4 لمزيد من المعلومات. إذا كنت تستخدم حاليّاً إصداراً أقدم من الإصدار 4، فراجع دليل الترحيل إلى حزمة تطوير برامج Java Azure Cosmos DB - الإصدار 4 للمساعدة على الترقية إلى الإصدار 4.
المتطلبات الأساسية
حساب قاعدة بيانات Azure Cosmos: يمكنك إنشائه من بوابة Azure أو استخدام Azure Cosmos DB Emulator أيضا.
بيئة تطوير جافا: تأكد من تثبيت مجموعة تطوير جافا (JDK) على جهازك مع إصدار لا يقل عن 8 نسخ.
يوفر Azure Cosmos DB Java SDK V4: الميزات اللازمة للتفاعل مع Azure Cosmos DB.
خلفية
يوفر خلاصة التغيير في قاعدة بيانات Azure Cosmos واجهة مدفوعة بالأحداث لتفعيل الإجراءات استجابة لإدراج المستندات ولها استخدامات عديدة.
يتم التعامل مع عمل إدارة أحداث تغذية التغيير إلى حد كبير من خلال مكتبة معالج خلاصات التغيير المدمجة في مجموعة تطوير البرمجيات. هذه المكتبة قوية بما يكفي لتوزيع أحداث تغذية التغيير بين عدة موظفين، إذا رغبت في ذلك. كل ما عليك فعله هو تزويد مكتبة تغذية التغيير بإشارة عودة.
هذا المثال البسيط لتطبيق جافا يوضح معالجة البيانات في الوقت الحقيقي باستخدام Azure Cosmos DB ومعالج تغذية التغيير. يقوم التطبيق بإدراج مستندات نموذجية في "حاوية تغذية" لمحاكاة تدفق البيانات. معالج تغيير الخلاصة، المرتبط بحاوية التغذية، يعالج التغييرات الواردة ويسجل محتوى المستند. يدير المعالج تلقائيا عقود الإيجار للمعالجة المتوازية.
كود المصدر
يمكنك استنساخ مستودع نموذج SDK والعثور على هذا المثال في SampleChangeFeedProcessor.java:
git clone https://github.com/Azure-Samples/azure-cosmos-java-sql-api-samples.git
cd azure-cosmos-java-sql-api-sample/src/main/java/com/azure/cosmos/examples/changefeed/
Walkthrough
تكوين في
ChangeFeedProcessorOptionsتطبيق جافا باستخدام Azure Cosmos DB و Azure Cosmos DB Java SDK V4. يوفر إعداداتChangeFeedProcessorOptionsأساسية للتحكم في سلوك معالج تغذية التغيير أثناء معالجة البيانات.options = new ChangeFeedProcessorOptions(); options.setStartFromBeginning(false); options.setLeasePrefix("myChangeFeedDeploymentUnit"); options.setFeedPollDelay(Duration.ofSeconds(5)); options.setFeedPollThroughputControlConfig(throughputControlGroupConfig);قم بتهيئة ChangeFeedProcessor مع التكوينات ذات الصلة، بما في ذلك اسم المضيف، حاوية التغذية، حاوية الإيجار، ومنطق معالجة البيانات. تبدأ طريقة start() معالجة البيانات، مما يتيح معالجة متزامنة وفي الوقت الحقيقي لتغييرات البيانات الواردة من حاوية التغذية.
logger.info("Start Change Feed Processor on worker (handles changes asynchronously)"); ChangeFeedProcessor changeFeedProcessorInstance = new ChangeFeedProcessorBuilder() .hostName("SampleHost_1") .feedContainer(feedContainer) .leaseContainer(leaseContainer) .handleChanges(handleChanges()) .options(options) .buildChangeFeedProcessor(); changeFeedProcessorInstance.start() .subscribeOn(Schedulers.boundedElastic()) .subscribe();حدد أن المندوب يتعامل مع تغييرات البيانات الواردة باستخدام الطريقة
handleChanges(). تعالج الطريقة مستندات JsonNode المستلمة من تغذية التغيير. كمطور، لديك خياران للتعامل مع مستند JsonNode الذي توفره لك Change Feed. أحد الخيارات هو العمل على المستند على شكل عقدة Json. وهذا أمر رائع خاصة إذا لم يكن لديك نموذج بيانات موحد لجميع المستندات. الخيار الثاني - تحويل عقدة JsonNode إلى POJO بنفس هيكل عقدة JsonNode. ثم يمكنك إجراء عملية على جهاز POJO.private static Consumer<List<JsonNode>> handleChanges() { return (List<JsonNode> docs) -> { logger.info("Start handleChanges()"); for (JsonNode document : docs) { try { //Change Feed hands the document to you in the form of a JsonNode //As a developer you have two options for handling the JsonNode document provided to you by Change Feed //One option is to operate on the document in the form of a JsonNode, as shown below. This is great //especially if you do not have a single uniform data model for all documents. logger.info("Document received: " + OBJECT_MAPPER.writerWithDefaultPrettyPrinter() .writeValueAsString(document)); //You can also transform the JsonNode to a POJO having the same structure as the JsonNode, //as shown below. Then you can operate on the POJO. CustomPOJO2 pojo_doc = OBJECT_MAPPER.treeToValue(document, CustomPOJO2.class); logger.info("id: " + pojo_doc.getId()); } catch (JsonProcessingException e) { e.printStackTrace(); } } isWorkCompleted = true; logger.info("End handleChanges()"); }; }بناء وتشغيل تطبيق جافا. يبدأ التطبيق معالج تغيير الخلاصة، ويدرج مستندات عينة في حاوية التغذية، ويعالج التغييرات الواردة.
خاتمة
في هذا الدليل، تعلمت كيفية إنشاء تطبيق جافا باستخدام Azure Cosmos DB Java SDK V4 الذي يستخدم قاعدة بيانات Azure Cosmos لقاعدة بيانات NoSQL ويستخدم معالج تغذية التغيير لمعالجة البيانات في الوقت الحقيقي. يمكنك توسيع هذا التطبيق للتعامل مع حالات استخدام أكثر تعقيدا وبناء تطبيقات قوية وقابلة للتوسع وموزعة عالميا باستخدام Azure Cosmos DB.
الموارد الإضافية
الخطوات التالية
يمكنك الآن متابعة المزيد عن مقدر تغذية التغيير في المقالات التالية: