ठीक है, तो मुझे लोड संतुलित PHP वेबसाइट का यह एक दुर्लभ परिदृश्य मिला है। बमर है - यह संतुलित लोड नहीं किया गया था। अब हम मुद्दों को पाने के लिए शुरू कर रहे हैं ...लोड संतुलन क्लस्टर में PHP सत्र - कैसे?
वर्तमान में केवल मुद्दा पीएचपी सत्र के साथ है। स्वाभाविक रूप से किसी ने इस मुद्दे पर पहले सोचा नहीं था ताकि PHP सत्र कॉन्फ़िगरेशन को इसके डिफ़ॉल्ट पर छोड़ा जा सके। इस प्रकार दोनों सर्वरों में सत्र फ़ाइलों का अपना छोटा सा छिड़काव होता है, और दुःख वह उपयोगकर्ता होता है जो अगले सर्वर को अगले अनुरोध पर फेंक देता है, क्योंकि उसके पास पहले सत्र में सत्र नहीं होता है।
अब, मैं इस स्थिति को हल करने के तरीके पर PHP मैनुअल पढ़ रहा हूं। वहां मुझे session_set_save_handler()
का अच्छा फ़ंक्शन मिला। (और, संयोग से, this topic एसओ पर) साफ। सिवाय इसके कि मुझे इस फ़ंक्शन को वेबसाइट के सभी पृष्ठों में कॉल करना होगा। और भविष्य के पृष्ठों के डेवलपर्स को हर समय इसे कॉल करना याद रखना होगा। लगता है कि शायद एक दर्जन सर्वश्रेष्ठ कोडिंग प्रथाओं का उल्लंघन करने का उल्लेख न करें। अगर मैं कुछ ग्लोबल कॉन्फ़िगरेशन विकल्प और वोला - सभी सत्रों को जादुई रूप से डीबी या मेमोरी कैश या कुछ में संग्रहीत कर सकता हूं तो यह बहुत अच्छा होगा।
यह कैसे करें इस पर कोई विचार है?
जोड़ा गया: स्पष्ट करने के लिए - मैं इस एक मानक समाधान के साथ एक मानक स्थिति होने की उम्मीद। एफवाईआई - मेरे पास एक MySQL डीबी उपलब्ध है। निश्चित रूप से वहाँ कुछ तैयार करने के लिए उपयोग कोड होना चाहिए जो हल करता है? मैं निश्चित रूप से, अपनी खुद की सत्र बचत सामग्री लिख सकता हूं और
auto_prepend
विकल्प
Greg द्वारा इंगित किया गया विकल्प वादा करता है - लेकिन यह पहिया को फिर से शुरू करने जैसा महसूस करेगा। : पी
जोड़ा गया 2: लोड संतुलन डीएनएस आधारित है। मुझे यकीन नहीं है कि यह कैसे काम करता है, लेकिन मुझे लगता है कि यह this जैसा होना चाहिए।
जोड़ा गया 3: ठीक है, मुझे लगता है कि एक समाधान हर लिपि में
session_set_save_handler()
के लिए एक कॉल डाल सकते हैं और अपने खुद के डीबी persister लिखने के लिए, शायद बेहतर प्रदर्शन के लिए
memcached
के लिए कॉल में फेंक
auto_prepend
विकल्प का उपयोग करने के लिए है। काफी उचित।
क्या कोई तरीका भी है कि मैं इसे स्वयं कोडिंग से बच सकता हूं? कुछ प्रसिद्ध और अच्छी तरह से परीक्षण PHP प्लगइन की तरह?
जोड़ा बहुत, बहुत बाद में: How to properly implement a custom session persister in PHP + MySQL?
इसके अलावा, मैं बस सभी पृष्ठों में मैन्युअल रूप से सत्र हैंडलर शामिल: इस तरह से मैं अंत में चला गया है।
यह सही तरीका नहीं है। मुद्दा PHP सत्र है, डेटाबेस के बारे में भूल जाओ, हम PHP के बारे में बात कर रहे हैं। यह समाधान केवल एक काम है। – Daniel
मैं असहमत हूं। डेटाबेस में PHP सत्र संग्रहीत करना इस समस्या का एक बिल्कुल अच्छा समाधान है। –
@MattFletcher समस्या का एक खराब समाधान है। मेमोरी स्टोरेज में रेडिस, मेमकैच, या रैमफ इत्यादि जैसे – r3wt