تنفيذ قاعدة بيانات أحادية للعميل
يحتوي كل مثيل من CosmosClient الفئة على بعض الميزات التي تم تنفيذها بالفعل نيابة عنك:
- المثيلات هي بالفعل مؤشر ترابط آمنة
- المثيلات هي إدارة الاتصالات بكفاءة
- المثيلات هي عناوين ذاكرة التخزين المؤقت عند التشغيل في الوضع المباشر
وبسبب هذا السلوك، في كل مرة تقوم فيها بتدمير وإعادة إنشاء مثيل داخل .NETAppDomain، تفقد المثيلات الجديدة فوائد إدارة التخزين المؤقت وإدارة الاتصال.
يوصي فريق Azure Cosmos DB ل NoSQL SDK باستخدام مثيل واحد لكل AppDomain مدة بقاء التطبيق. يسمح هذا التغيير الصغير في الإعداد الخاص بك بأداء SDK أفضل من جانب العميل وإدارة اتصال أكثر كفاءة.
تلميح
من السهل استخدام قاعدة بيانات أحادية في تطبيق وحدة تحكم .NET. بالنسبة لتطبيقات الويب ASP.NET، يجب عليك مراجعة كيفية إنشاء مثيل قاعدة بيانات أحادية باستخدام إطار عمل حقن التبعية الذي تختاره.
CosmosClient في Python SDK خفيف الوزن، ويتعامل Azure Cosmos DB SDK ل Python تلقائيا مع إدارة الاتصال بكفاءة. ومع ذلك، بالنسبة للأداء وكفاءة الموارد، فإن التوصية هي إعادة استخدام نفس مثيل CosmosClient في جميع أنحاء التطبيق الخاص بك.
- Python SDK هو مؤشر ترابط آمن، لذلك يمكن مشاركة مثيل واحد عبر مؤشرات ترابط متعددة.
- يؤدي إنشاء مثيلات متعددة والتخلص منها إلى زيادة استهلاك الموارد دون داع.
أفضل الممارسات
- إنشاء مثيل
CosmosClientواحد وإعادة استخدامه طوال مدة بقاء التطبيق الخاص بك. - في التطبيقات طويلة الأمد، قم بتخزين مثيل
CosmosClientفي موقع يمكن الوصول إليه عالميا، مثل متغير على مستوى الوحدة النمطية أو حاوية إدخال التبعية.
تلميح
إذا كنت تستخدم إطار عمل مثل FastAPI أو Flask، ففكر في إنشاء CosmosClient مرة واحدة أثناء بدء تشغيل التطبيق وإعادة استخدامه عبر الطلبات.
تم تصميم فئة CosmosClient في JavaScript SDK بحيث يمكن إعادة استخدامها عبر العمليات.
- تدير JavaScript SDK الاتصالات بكفاءة، ولكن يمكن أن يؤثر إنشاء مثيل متكرر على الأداء.
-
CosmosClientليست مكلفة بطبيعتها لإنشائها، ولكن إعادة استخدام مثيل واحد يساعد على تحسين استخدام الموارد.
أفضل الممارسات
- إنشاء مثيل
CosmosClientواحد وإعادة استخدامه عبر التطبيق الخاص بك. - في بيئة Node.js، قم بتهيئة
CosmosClientمرة واحدة ومشاركتها عبر الوحدات النمطية. - إذا كنت تستخدم إطار عمل ويب مثل Express.js، فهيأ
CosmosClientأثناء بدء تشغيل التطبيق واستخدمه عبر الطلبات.
تلميح
في البيئات بلا خادم مثل Azure Functions، ضع في اعتبارك استخدام متغير ثابت لاستمرار مثيل CosmosClient عبر استدعاءات الوظائف.