Couchbase · حالة استخدام
مخزن الجلسات: إبقاء المستخدمين مسجّلين في وقت الذروة، ومتى يناسب Couchbase
مخزن الجلسات هو قاعدة البيانات التي تحفظ ما يتذكره التطبيق عن المستخدم المسجّل بين طلب وآخر: من هو، ومتى كان آخر نشاط له، وما في سلته. وفي وقت الذروة، حين يخدم تطبيق بنكي أو بوابة حكومية أو متجر إلكتروني أضعاف حركته المعتادة، يحدد مخزن الجلسات هل يبقى المستخدمون مسجّلين أم يعودون إلى صفحة الدخول. يشرح هذا الدليل الخيارات المتاحة، وقرارات التصميم، ومتى يناسب Couchbase ومتى لا يناسب.
نُشر في 8 دقائق قراءة
الخلاصة للإدارة
- المشكلة: تعمل التطبيقات اليوم على عدة خوادم. فإذا بقيت حالة الدخول في ذاكرة خادم واحد، خرج المستخدمون عند إعادة تشغيله أو حين يوزّع موازن الحمل الطلبات على غيره.
- الحل: مخزن جلسات مشترك تقرأ منه كل الخوادم، فتبقى الجلسات بعد إعادة التشغيل ويتوزع الحمل في الذروة.
- ما يجب تقريره: مدة بقاء الجلسة، وطريقة إنهائها عند الخروج، وما يحدث عند تعطل خادم، وإقامة البيانات، لأن الجلسات تحمل بيانات شخصية.
- متى يناسب Couchbase: للقنوات كثيفة الاستخدام التي تحتاج إلى انتهاء صلاحية تلقائي ونسخ على عقد أخرى وإمكانية الاستعلام عن الجلسات، في مركز بياناتكم أو على Couchbase Capella داخل السعودية.
- متى لا يناسب: لتطبيق صغير على خادم واحد، أو لتطبيق لديه مخزن جلسات يتحمل ذروته اليوم.
نظرة سريعة
| السؤال | الجواب المختصر |
|---|---|
| ما الذي يحفظه | سجلًا صغيرًا لكل مستخدم أو جهاز مسجّل: الهوية، والصلاحيات، وآخر نشاط، وحالة مؤقتة |
| كيف يُقرأ | بمعرّف الجلسة، في كل طلب تقريبًا، فالسرعة في الذروة أهم ما فيه |
| كم تبقى البيانات | من دقائق إلى ساعات، ويُحذف كل سجل تلقائيًا بعد مهلة خمول أو مهلة قصوى |
| كلفة العطل | غالبًا تسجيل دخول من جديد، وأحيانًا سلة ضائعة أو عملية متوقفة |
| موقع Couchbase | مخزن مشترك فيه انتهاء صلاحية ونسخ واستعلامات، بالتشغيل الذاتي أو على Capella |
| من إنتركي | مراجعة التصميم، وتحديد الحجم، والبناء، واختبار الحمل، والدعم من الرياض |
ما مخزن الجلسات، وما المشكلة التي يحلها
بروتوكول HTTP ينسى المستخدم بعد كل طلب. ولكي يبقى المستخدم مسجّلًا، يعطي التطبيقُ المتصفحَ أو تطبيقَ الجوال معرّفَ جلسة، يُرسل عادةً في ملف تعريف ارتباط (cookie) أو في ترويسة الطلب، ويحفظ السجل المقابل له لدى الخادم. ومع كل طلب يبحث التطبيق عن هذا السجل ليعرف من المتصل وما المسموح له.
إذا عمل التطبيق على خادم واحد، أمكن أن يبقى السجل في ذاكرته. لكن القنوات الفعلية لا تعمل على خادم واحد: موازن الحمل يوزع الطلبات على عدة خوادم، والخوادم يُعاد تشغيلها لتثبيت التحديثات، والحاويات تُضاف وتُزال كلما توسعت المنصة أو تقلصت. وكل حدث من هذه قد يُضيّع جلسة محفوظة في الذاكرة المحلية، فيرى المستخدم نفسه خارج النظام وهو في منتصف دفع أو تعبئة نموذج.
اقرأ المزيد
ومخزن الجلسات المشترك ينقل هذه السجلات من خوادم التطبيق إلى قاعدة بيانات تقرأ منها كل الخوادم. فيستطيع أي خادم أن يجيب عن أي طلب، ولا يضيع شيء عند إعادة تشغيل خادم، وتضيف المنصة خوادم في الذروة دون أن تنقل المستخدمين. والثمن أن مخزن الجلسات صار في طريق كل طلب تقريبًا، فإن أبطأ أبطأت القناة كلها.
لماذا يهم مخزن الجلسات لتطبيقات البنوك والبوابات والمتاجر في السعودية
تأتي الحركة في المملكة غالبًا في ذروات حادة: تطبيقات البنوك حول أيام صرف الرواتب وفي ليالي رمضان، والبوابات الحكومية في فترات التسجيل ومواعيدها النهائية، والمتاجر الإلكترونية في مواسم التخفيضات وقبل العيد. وفي هذه اللحظات يكون أكثر المستخدمين مسجّلين في الوقت نفسه، ويكون الخروج المفاجئ من النظام أكثر كلفة.
وتحمل الجلسات كذلك بيانات شخصية، كثيرًا ما يكون فيها رقم الهوية الوطنية أو رقم الجوال إلى جانب معرّف الجلسة. فإقامة البيانات هنا مسألة يحكمها نظام حماية البيانات الشخصية الذي تشرف عليه سدايا، والضوابط التي تطبقها جهتكم من الهيئة الوطنية للأمن السيبراني. وتلتزم البنوك أيضًا بمتطلبات الجهة الرقابية عليها.
روابط ذات صلةسداياالهيئة الوطنية للأمن السيبراني
أين يمكن أن تُحفظ حالة الجلسة: الخيارات وما لكل منها وما عليه
لا توجد إجابة واحدة صحيحة لكل الحالات. وكثير من الجهات تجمع خيارين، مثل رمز موقّع قصير المدة للهوية، ومخزن مشترك لكل ما يتغير.
| الخيار | طريقة العمل | يناسب | انتبهوا إلى |
|---|---|---|---|
| ذاكرة كل خادم تطبيق | يعيد موازن الحمل المستخدم إلى الخادم نفسه (الجلسات الثابتة sticky) | التطبيقات الصغيرة على خادم أو خادمين | ضياع الجلسات مع كل إعادة تشغيل أو تقليص، وتوزيع غير متوازن للحمل في الذروة |
| رمز موقّع يحمله العميل | تنتقل بيانات الجلسة في رمز موقّع ولا يحفظ الخادم شيئًا | الهوية والصلاحيات التي نادرًا ما تتغير | صعوبة إلغاء الرمز قبل انتهائه، وكبر حجمه كلما أُضيفت بيانات |
| جدول في قاعدة البيانات العلائقية | الجلسات صفوف في قاعدة البيانات الرئيسية | الحركة المتوسطة حين يكون في قاعدة البيانات متسع | كل طلب يصبح كتابة على قاعدة البيانات، والصفوف المنتهية تحتاج إلى مهمة تنظيف |
| ذاكرة مؤقتة منفصلة في الذاكرة فقط | ذاكرة مؤقتة بجانب قاعدة البيانات تحفظ الجلسات | القراءة السريعة حين يُقبل ضياع الجلسات عند إعادة التشغيل | نظام إضافي للتشغيل، وإعادة تشغيله قد تُخرج الجميع |
| قاعدة بيانات NoSQL موزعة بالذاكرة والقرص | الجلسات مستندات في الذاكرة تُكتب على القرص وتُنسخ إلى عقد أخرى | القنوات كثيفة الاستخدام التي تحتاج إلى بقاء الجلسات بعد الأعطال | عنقود موزع يحتاج إلى تحديد حجم وتشغيل |
قائمة التحقق لتصميم مخزن الجلسات
هذه القرارات نراجعها مع الفريق قبل اختيار أي منتج. ونقاط البداية المذكورة ممارسات شائعة، أما القيم النهائية فتحددها سياسة الأمن لديكم والجهة الرقابية.
| القرار | السؤال | نقطة بداية شائعة |
|---|---|---|
| معرّف الجلسة | هل يستطيع مهاجم تخمينه أو إعادة استخدامه؟ | معرّفات عشوائية طويلة من مولّد آمن، ومعرّف جديد بعد الدخول |
| المحتوى | ما الذي يحتاج فعلًا إلى أن يكون في الجلسة؟ | الهوية والصلاحيات ومؤشرات إلى البيانات، دون بيانات بطاقات أو مستندات كاملة |
| مهلة الخمول | كم يُسمح للمستخدم أن يبقى دون نشاط؟ | قصيرة للبنوك وأطول للتسوق، وتحددها سياسة الأمن لديكم |
| المهلة القصوى | كم تدوم الجلسة كحد أعلى، نشطة كانت أم لا؟ | حد ثابت يُحفظ في الجلسة ويُفحص مع كل طلب |
| الخروج والإلغاء | هل يمكن إنهاء كل جلسات مستخدم واحد دفعة واحدة؟ | الحذف عند الخروج، وطريقة للعثور على جلسات المستخدم |
| الأعطال | ماذا يرى المستخدم إذا تعطلت عقدة في المخزن؟ | نسخ على عقد أخرى، مع تجربة فعلية للتحويل عند العطل |
| الموقع الثاني | هل يجب أن تبقى الجلسات بعد فقدان مركز بيانات؟ | نسخ إلى موقع التعافي، أو قبول تسجيل دخول جديد |
| إقامة البيانات والوصول | أين تُحفظ البيانات، ومن يستطيع قراءتها؟ | داخل المملكة حيث يُشترط ذلك، واتصالات مشفرة، ووصول إداري يُسجَّل في سجل التدقيق |
كيف يعمل مخزن الجلسات على Couchbase
في Couchbase تكون كل جلسة مستند JSON صغيرًا مفتاحه معرّف الجلسة، داخل مجموعة (collection) مخصصة لها. وتذهب القراءة والكتابة إلى خدمة Data بالمفتاح، وهو مسار المفتاح والقيمة الذي تشرحه صفحة مخزن المفتاح والقيمة، فلا ينتظر البحث عن الجلسة في كل طلب تنفيذَ استعلام.
مهلة الخمول دون مهمة تنظيف. تتيح Couchbase ضبط حد أعلى لمدة البقاء (maxTTL) على المجموعة. ويُعاد تطبيقه افتراضيًا كلما أُنشئ مستند أو عُدّل، فكل تحديث للجلسة يمد عمرها، وهذا هو سلوك مهلة الخمول. ويستخدم توثيق Couchbase نفسه جلسات المستخدمين مثالًا على ذلك. وإذا أردتم أن تمد القراءةُ وحدها عمر الجلسة، فاستخدموا عملية touch في مكتبات Couchbase البرمجية. وتشرح صفحة التخزين المؤقت الموزع متى تُحذف المستندات المنتهية فعليًا.
اقرأ المزيد
المهلة القصوى والخروج. انتهاء الصلاحية يعالج الخمول، أما الحد الأقصى فتاريخ يُحفظ في المستند ويفحصه التطبيق. وعند الخروج يُحذف المستند. ولأن الجلسات مستندات JSON، فإن فهرسًا واستعلامًا بلغة SQL++ يكفيان للعثور على كل جلسات مستخدم واحد، فيصبح «إخراج هذا العميل من كل الأجهزة» استعلامًا واحدًا لا مسحًا كاملًا.
حفظ دائم أم في الذاكرة فقط. حاوية Couchbase العادية تحفظ الجلسات في الذاكرة وعلى القرص، مع نسخ على عقد أخرى، فلا تُخرج إعادةُ التشغيل المستخدمين. وحين يكون ضياع الجلسات مقبولًا، تحفظها حاوية Ephemeral (واسمها Memory Only في Capella) في الذاكرة فقط. والكتابة العادية تناسب معظم الجلسات، وتنصح Couchbase نفسها بألا تكون الكتابة المؤكدة هي الأصل. وللموقع الثاني ينسخ النسخ المتماثل بين مراكز البيانات (XDCR) الجلسات إلى عنقود التعافي.
روابط ذات صلةصفحة مخزن المفتاح والقيمةصفحة التخزين المؤقت الموزع
متى يناسب مخزن جلسات NoSQL على Couchbase، ومتى لا يناسب
يناسب حين يكون في القناة عدد كبير من المستخدمين المسجّلين في الذروة، وتعمل على عدة خوادم أو حاويات، وتحتاج إلى أن تبقى الجلسات بعد إعادة التشغيل أو تعطل عقدة. ويناسب أكثر حين تحفظ Couchbase بيانات أخرى للقناة نفسها، مثل ملفات العملاء أو كتالوج المنتجات، فيخدم عنقود واحد الاثنين.
ولا يناسب حين يعمل التطبيق على خادم واحد بحركة محدودة، فالجلسات المحلية أو جدول في قاعدة البيانات أبسط. ولا حاجة إليه إن كان لديكم مخزن جلسات يتحمل ذروتكم ويعرفه فريقكم جيدًا. وهو اختيار خاطئ إن لم توجد جهة، داخلية أو متعاقد معها، تشغّل عنقودًا موزعًا. ويعرض دليل قاعدة بيانات NoSQL الاختيار الأوسع.
روابط ذات صلةكتالوج المنتجاتدليل قاعدة بيانات NoSQL
كيف تساعدكم إنتركي في السعودية
إنتركي شريك تقني لـ Couchbase وتبيع Couchbase Capella. ويعمل Couchbase Server ذاتي التشغيل في مركز بياناتكم داخل المملكة، وحتى نوفمبر 2026 تضم مناطق Capella المنشورة منطقة Google Cloud في الدمام (me-central2)، وتعرض مقارنة Capella والتشغيل الذاتي المناطق وطريقة الاحتساب. ويعمل مهندسونا من الرياض، بالعربية والإنجليزية، ويدعمون العنقود بعد الإطلاق: المهل، والفهارس، والتحويل عند الأعطال، والترقيات. ويخضع الوصول عن بُعد للدعم لشروط يضعها فريق الأمن لديكم.
روابط ذات صلةشريك تقني لـ Couchbaseمقارنة Capella والتشغيل الذاتي
كيف يسير مشروع مخزن الجلسات
-
المراجعة.
عدد المستخدمين المسجّلين والطلبات في الذروة، ومحتوى الجلسة، والمهل، وتحمّل الأعطال، وقاعدة إقامة البيانات. والإبقاء على المخزن الحالي نتيجة ممكنة.
-
التصميم.
المفاتيح، والمجموعات، وmaxTTL، والمهلة القصوى، ومسار الخروج والإلغاء، والاختيار بين الحفظ الدائم والذاكرة فقط.
-
تحديد الحجم والسعر.
العقد والذاكرة والنسخ على Couchbase Server أو Capella، مع عملنا في بنود مستقلة.
-
البناء والاختبار.
العنقود، وإعدادات الأمان، والمراقبة، ثم اختبار حمل بمستوى الذروة المتوقعة وتجربة للتحويل عند العطل.
-
الانتقال.
تذهب الجلسات الجديدة إلى المخزن الجديد، وتنتهي القديمة في مكانها، فلا يخرج أحد من النظام.
-
الدعم.
دعم من الرياض بعد الإطلاق، وتدريب لفريقكم.
أسئلة يطرحها العملاء
ما مخزن الجلسات في تطبيقات الويب؟
هو قاعدة البيانات المشتركة التي تحفظ سجل كل مستخدم مسجّل لدى الخادم: الهوية، والصلاحيات، وآخر نشاط، والحالة المؤقتة. وتقرأ منه كل خوادم التطبيق بمعرّف الجلسة، فيستطيع أي خادم أن يجيب عن أي طلب، ولا تُخرج إعادةُ التشغيل المستخدمين.
هل نحفظ الجلسات في رموز موقّعة أم في مخزن لدى الخادم؟
الرموز الموقّعة تناسب بيانات الهوية التي نادرًا ما تتغير، ولا يحفظ الخادم معها شيئًا، لكن إلغاءها قبل انتهائها صعب. أما المخزن لدى الخادم فيسمح بإنهاء الجلسة فورًا، عند الخروج أو بعد حادثة أمنية. وكثير من القنوات تجمع رمزًا قصير المدة ومخزنًا مشتركًا.
كيف تُنهي Couchbase الجلسات الخاملة تلقائيًا؟
بضبط حد أعلى لمدة البقاء (maxTTL) على المجموعة التي تحفظ الجلسات. وتعيد Couchbase تطبيقه افتراضيًا مع كل تعديل لمستند الجلسة، فتبقى الجلسات النشطة وتنتهي الخاملة. ويمكن أن تمد القراءة عمر الجلسة بعملية touch. أما المهلة القصوى فتاريخ يفحصه التطبيق.
هل يمكن أن تبقى بيانات مخزن الجلسات لتطبيق بنكي داخل المملكة؟
نعم. يعمل Couchbase Server في مركز بياناتكم داخل السعودية، وحتى نوفمبر 2026 تضم مناطق Couchbase Capella المنشورة منطقة Google Cloud في الدمام. وتحققوا كذلك من وجهة النسخ الاحتياطية والسجلات وطريقة الوصول للدعم، لأن الجلسات تحمل بيانات شخصية.
ما الذي يحدد كلفة مخزن جلسات على Couchbase؟
عدد الجلسات المحفوظة في الذاكرة في الذروة، وحجمها، وعدد النسخ، والحاجة إلى موقع تعافٍ. فهذه تحدد عدد العقد. وتُحتسب Capella لكل عقدة في الساعة، أما Couchbase Server ذاتي التشغيل فاشتراك بعدد عقد الإنتاج. ونسعّر عمل إنتركي في بنود مستقلة.
كم يستغرق نقل الجلسات إلى مخزن جديد دون إخراج المستخدمين؟
يتوقف ذلك على عدد التطبيقات التي تقرأ الجلسات، وطريقة برمجتها اليوم، ومراجعة فريق الأمن لديكم. ولأن الجلسات تنتهي من تلقاء نفسها، تذهب الجديدة إلى المخزن الجديد بينما تنتهي القديمة، فلا يخرج أحد. ونقدّر المدة بعد المراجعة.
التالي
اقرأ أيضًا
الخطوة التالية
اطلبوا مراجعة تصميم مخزن الجلسات مع إنتركي
أخبرونا عن القناة (تطبيق بنكي أو بوابة أو متجر إلكتروني)، وعدد المستخدمين المسجّلين في الذروة تقريبًا، والمهل المعمول بها، وهل يجب أن تبقى البيانات داخل المملكة. وسنرد عليكم برأي أولي في الخيارات وبما يشمله تحديد الحجم.
أو مباشرةً
+966-11-2180999 [email protected]أبراج التعاونية، البرج الشمالي، الطابق السابع، طريق الملك فهد، العليا، ص.ب. ٥٦٨٣٥، الرياض ١١٥٦٤، المملكة العربية السعودية