ضبط تكوينات الاتصال ل Azure Cosmos DB .NET SDK v3
هام
المعلومات الواردة في هذه المقالة مخصصة ل Azure Cosmos DB .NET SDK v3 فقط. يرجى عرض أوضاع اتصال Azure Cosmos DB SQL SDK وملاحظات إصدار Azure Cosmos DB .NET SDK v3 ومستودع Nuget ودليل استكشاف الأخطاء وإصلاحها في Azure Cosmos DB .NET SDK v3 لمزيد من المعلومات. إذا كنت تستخدم حاليا إصدارا أقدم من v3، فشاهد دليل الترحيل إلى Azure Cosmos DB .NET SDK v3 للمساعدة في الترقية إلى الإصدار 3.
Azure Cosmos DB هي قاعدة بيانات موزعة سريعة ومرنة تتوسع بسلاسة مع زمن انتقال ومعدل انتقال مضمونين. لا يتعين عليك إجراء تغييرات هيكلية كبيرة أو كتابة تعليمات برمجية معقدة لتوسيع نطاق قاعدة البيانات باستخدام Azure Cosmos DB. يعد التوسع لأعلى ولأسفل سهلاً مثل إجراء استدعاء واحد لواجهة برمجة التطبيقات أو استدعاء طريقة SDK. ومع ذلك، نظرا لأنه يتم الوصول إلى Azure Cosmos DB عبر مكالمات الشبكة، فهناك تكوينات اتصال يمكنك ضبطها لتحقيق أعلى أداء عند استخدام Azure Cosmos DB .NET SDK v3.
تكوين الاتصال
إشعار
في Azure Cosmos DB . NETS SDK v3، الوضع المباشر هو الخيار الأفضل في معظم الحالات لتحسين أداء قاعدة البيانات مع معظم أحمال العمل.
لمعرفة مزيد حول خيارات الاتصال المختلفة، راجع مقالة أوضاع الاتصال.
وضع الاتصال المباشر
وضع الاتصال الافتراضي ل .NET SDK مباشر. في الوضع المباشر، يتم إجراء الطلبات باستخدام بروتوكول TCP. يستخدم الوضع المباشر الداخلي بنية خاصة لإدارة موارد الشبكة ديناميكيًّا، والحصول على أفضل أداء. تتيح بنية جانب العميل المستخدمة في الوضع المباشر الاستخدام المتوقع للشبكة والوصول المتعدد إلى النسخ المتماثلة لـAzure Cosmos DB. لمعرفة المزيد حول البنية، راجع بنية اتصال الوضع المباشر.
تكوِّن وضع الاتصال عند إنشاء المثيل CosmosClient
في CosmosClientOptions
.
CosmosClient client = new CosmosClient(
"<nosql-account-endpoint>",
tokenCredential
new CosmosClientOptions
{
ConnectionMode = ConnectionMode.Gateway // ConnectionMode.Direct is the default
}
);
تخصيص وضع الاتصال المباشر
يمكن تخصيص الوضع المباشر من خلال CosmosClientOptions التي تم تمريرها إلى منشئ CosmosClient . نوصي المستخدمين بتجنب تعديلها ما لم يشعروا بالراحة في فهم المقايضات ومن الضروري.
خيار التكوين | الإعداد الافتراضي | مستحسن | التفاصيل |
---|---|---|---|
EnableTcpConnectionEndpointRediscovery | صحيح | صحيح | يمثل هذا العلامة لتمكين الكشف عن الاتصالات التي تغلق من الخادم. |
IdleTcpConnectionTimeout | ستظل الاتصالات الساكنة مفتوحة إلى أجل غير مسمى افتراضياً. | 20m-24h | يمثل هذا مقدار وقت الخمول الذي يتم بعده إغلاق الاتصالات غير المستخدمة. تتراوح القيم الموصى بها بين 20 دقيقة و24 ساعة. |
MaxRequestsPerTcpConnection | 30 | 30 | يمثل هذا عدد الطلبات المسموح بها في وقت واحد عبر اتصال TCP واحد. عندما يكون المزيد من الطلبات قيد الطيران في نفس الوقت، يفتح عميل direct/TCP اتصالات إضافية. لا تقم بتعيين هذه القيمة أقل من أربعة طلبات لكل اتصال أو أعلى من 50-100 طلب لكل اتصال. قد تحصل التطبيقات ذات درجة عالية من التوازي لكل اتصال، مع طلبات أو استجابات كبيرة، أو مع متطلبات زمن انتقال ضيقة على أداء أفضل مع 8-16 طلبا لكل اتصال. |
MaxTcpConnectionsPerEndpoint | 65535 | 65535 | يمثل هذا الحد الأقصى لعدد اتصالات TCP التي قد يتم فتحها لكل واجهة خلفية ل Cosmos DB. جنبا إلى جنب مع MaxRequestsPerTcpConnection، يحد هذا الإعداد من عدد الطلبات التي يتم إرسالها في وقت واحد إلى Cosmos DB خلفية واحدة (MaxRequestsPerTcpConnection x MaxTcpConnectionPerEndpoint). يجب أن تكون القيمة أكبر من أو تساوي 16. |
OpenTcpConnectionTimeout | 5 seconds | 1 ثانية | يمثل هذا مقدار الوقت المسموح به لمحاولة إنشاء اتصال. عند انقضاء الوقت، يتم إلغاء المحاولة وإرجاع خطأ. تؤدي المهلات الأطول إلى تأخير عمليات إعادة المحاولة والفشل. |
PortReuseMode | PortReuseMode.ReuseUnicastPort | PortReuseMode.ReuseUnicastPort | يمثل هذا نهج إعادة استخدام منفذ العميل المستخدم بواسطة مكدس النقل. |
إشعار
تخصيص وضع اتصال البوابة
يمكن تخصيص وضع البوابة من خلال CosmosClientOptions التي تم تمريرها إلى منشئ CosmosClient . نوصي المستخدمين بتجنب تعديلها ما لم يشعروا بالراحة في فهم المقايضات ومن الضروري.
خيار التكوين | الإعداد الافتراضي | مستحسن | التفاصيل |
---|---|---|---|
بوابةModeMaxConnectionLimit | 50 | 50 | يمثل هذا الحد الأقصى لعدد الاتصالات المتزامنة المسموح بها لنقطة نهاية الخدمة الهدف في خدمة Azure Cosmos DB. |
WebProxy | قيمة فارغة | قيمة فارغة | يمثل هذا معلومات الوكيل المستخدمة لطلبات الويب. |
إشعار
راجع أيضا أفضل الممارسات عند استخدام وضع البوابة ل Azure Cosmos DB NET SDK v3.
الخطوات التالية
لمعرفة المزيد حول نصائح الأداء ل .NET SDK، راجع نصائح الأداء ل Azure Cosmos DB NET SDK v3.
- إذا لم تكن تعرف سوى عدد vCores والخوادم في نظام مجموعة قاعدة البيانات الحالية فقط، فاقرأ عن تقدير وحدات الطلب باستخدام vCores أو vCPUs
- إذا كان كل ما تعرفه هو عدد vcores والخوادم الموجودة في مجموعة قاعدة البيانات، اقرأ عن تقدير وحدات الطلب باستخدام vCores أو vCPUs