هل هناك طريقة لتحديد متجر جلسة مختلف باستخدام Tomcat؟

StackOverflow https://stackoverflow.com/questions/82340

  •  01-07-2019
  •  | 
  •  

سؤال

يقوم Tomcat (الإصدار 5 هنا) بتخزين معلومات الجلسة في الذاكرة.عند التجميع، يتم بث هذه المعلومات بشكل دوري إلى خوادم أخرى في المجموعة للحفاظ على مزامنة الأشياء.يمكنك استخدام مخزن قاعدة البيانات لجعل الجلسات مستمرة ولكن تتم كتابة هذه المعلومات بشكل دوري فقط ويتم استخدامها فقط لاستعادة الفشل بدلاً من استبدال الجلسات الموجودة في الذاكرة فعليًا.

إذا كنت لا ترغب في استخدام الجلسات الثابتة (التكوين الخاص بنا لا يسمح بذلك للأسف) فإن هذا يثير مشكلة خروج الجلسات عن المزامنة.

في اللغات الأخرى، تميل أطر الويب إلى السماح لك باستخدام قاعدة البيانات كمخزن الجلسة الأساسي.في حين أن هذا يقدم مشكلة توسيع محتملة، إلا أنه يجعل إدارة الجلسة واضحة جدًا.أتساءل عما إذا كانت هناك طريقة لجعل Tomcat يستخدم قاعدة بيانات للجلسات بهذه الطريقة (من الناحية الفنية، سيؤدي هذا أيضًا إلى إزالة الحاجة إلى أي تكوين تجميعي في Tomcat server.xml).

هل كانت مفيدة؟

المحلول

هناك بالتأكيد طريقة.على الرغم من أنني سأصوت بقوة لصالح الجلسات اللزجة - فهي توفر الكثير من الحمل على الخوادم/قاعدة البيانات الخاصة بك (ما لم يفشل شيء ما)...

http://tomcat.apache.org/tomcat-5.5-doc/config/manager.html يحتوي على معلومات حول تكوين SessionManager وإعداد Tomcat.اعتمادًا على متطلباتك الدقيقة، قد يتعين عليك تنفيذ مدير الجلسة الخاص بك، ولكن نقطة البداية هذه يجب أن توفر بعض المساعدة.

نصائح أخرى

نلقي نظرة على الطين, ، أعتقد أنه يمكنه معالجة مشكلات القياس لديك دون إعادة تصميم كبيرة للتطبيق.

لقد كنت دائمًا معجبًا بتقنية جلسات Rails:قم بتخزين الجلسات (مضغوطة + مشفرة + موقعة) في ملف تعريف الارتباط الخاص بالمستخدم.وبهذه الطريقة يمكنك إجراء موازنة التحميل لمحتوى قلبك، ولا داعي للقلق بشأن الجلسات الثابتة، أو الوصول إلى قاعدة البيانات لبيانات الجلسة الخاصة بك، وما إلى ذلك.لست متأكدًا من إمكانية تنفيذ ذلك بسهولة في تطبيق Java دون إعادة كتابة رمز الوصول إلى الجلسة.على أية حال مجرد فكرة.

بديل آخر سيكون memcached-مدير الجلسة, ، حل تجاوز فشل الجلسة المستند إلى memcached ونسخ الجلسة لـ Tomcat 6.x / 7.x.وهو يدعم كلاً من الجلسات اللزجة والجلسات غير اللزجة.

لقد قمت بإنشاء هذا المشروع للحصول على أفضل أداء وموثوقية ولكي أكون قادرًا على التوسع عن طريق إضافة المزيد من عقد Tomcat وmemcached.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top