سبب الحادث: مشروع رئيسي "صور تصف الأشياء الجميلة"، ووظيفة فرعية أخرى هي وظيفة دخول مالك العلامة التجارية، وهي مشروع منفصل عن المشروع الرئيسي لمشاركة معلومات المستخدم الذي قام بتسجيل الدخول، وهي مشاركة الجلسة تم تحقيقه، قطتان، قطة واحدة6، قطة7
تحقيق مشاركة الجلسة ضمن نظام Windows لمشروع الويب
الخطوة الأولى:
قم بتكوين التعليمة البرمجية التالية في ملفات context.xml الخاصة بالقطط:
<مدير className = "de.javakaffee.web.msm.MemcachedBackupSessionManager"memcachedNodes = "n1:127.0.0.1:11211"lockingMode = "auto"sticky = "true"requestUriIgnorePattern = ".*/.(ico|png|gif|jpg| CSS|ي s)$"sessionBackupAsync="false"sessionBackupTimeout="100"transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"copyCollectionsForSerialization="true"/>
الخطوة الثانية:
تمت إضافة حزمة الجرة ضمن Tomcat6:
تمت إضافة حزمة الجرة ضمن Tomcat7:
ملاحظة: استخدم memcache لحفظ جلسة القط
الغرض الأساسي من كتابة هذا المقال هو تصحيح بعض الأخطاء الموجودة على الإنترنت.
المتطلبات الأساسية:
1. memcached يعمل بشكل طبيعي
2. Tomcat يعمل بشكل طبيعي.
1. طريقة التثبيت وحزمة التثبيت
javolution-5.4.3.1.jar
memcached-2.4.2.jar
memcached-session-manager-1.3.0.jar
msm-javolution-serializer-cglib-1.3.0.jar
msm-javolution-serializer-jodatime-1.3.0.jar
طريقة التثبيت: ضع هذه الحزم في /usr/local/tomcat6.0/lib.
2. قم بتحرير ملف تكوين Tomcat.
<هذا مهم لأن معظم المقالات على الإنترنت تتحدث عن تعديل التكوين في الخادم. في الوقت الحاضر، وجد أن تحرير ملف context.xml يمكن أن يؤدي إلى إلقاء الجلسة على الفور في ذاكرة التخزين المؤقت. >
# vim /usr/local/tomcat6.0/conf/context.xml <Context> <!-- أضف المحتوى التالي ضمن هذا الحقل، يرجى ملء عنوان IP لخادم الذاكرة المؤقتة ورقم المنفذ عند إدخال العقدة --> <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:10.254.41.197:11211" requestUriIgnorePattern=".*/.(png|gif|jpg|css|js)$" sessionBackupAsync="false" sessionBackupTimeout="100" transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory" CopyCollectionsForSerialization="false" /> </Context>
3. كيفية الاختبار؟
طريقة الاختبار الحالية الخاصة بي هي تنفيذ موازنة التحميل من خلال mod_jk الخاص بـ Apache (المكتوب في مقالة سابقة) وتمكين النسخ المتماثل للجلسة بين القطط.
والنتيجة هي أن معرف الزيارة سيغير العقدة مع كل إرسال مستخدم، لكن المعرف لن يتغير.
على سبيل المثال:
معرف CFC1ACAC6B0B8C27BEA76919F3A99BF8-n1.tomcat2
سيصبح الإرسال التالي: <تم تبديل العقدة، لكن المعرف يبقى دون تغيير>
معرف CFC1ACAC6B0B8C27BEA76919F3A99BF8-n1.tomcat1
مع حالة memcache: <عندما فشلت في تنفيذ الجلسة بنجاح في memcached، كانت قيمة cmd_set 0>
# بيرل memcached-tool.pl 10.254.41.197:11211 احصائيات
كمد_جيت 27
كمد_سيت 15
الحصول على الزيارات 12
# بيرل memcached-tool.pl 10.254.41.197:11211 احصائيات
كمد_جيت 31
كمد_سيت 17
الحصول على الزيارات 14
أعتقد أنه بناءً على الحكم أعلاه، فإن التكوين ناجح!