2017-01-27 6 views
9

हाल ही में, हमारे PHP वेब ऐप कुछ मिनटों के लिए अनुपलब्ध हो गया क्योंकि हमारे मेमकैड नोड्स में से एक की मृत्यु हो गई है (हम Memcachier को मेमकैच प्रदाता के रूप में उपयोग करते हैं)।हेरोकू/PHP 5.6 पर्यावरण में विफलता समर्थन के साथ Memcached कैसे सेटअप करें?

यह हमारे user.ini विन्यास, जो काम किया (Heroku एक जगह है जहाँ आप अपने विन्यास को परिभाषित के रूप में user.ini उपयोग करता है) था, लेकिन जाहिरा तौर पर विफलता का समर्थन नहीं किया:

session.save_handler=memcached 
session.save_path=${MEMCACHIER_SERVERS} # I understand this is redundant, but I just kept it as-is because I didn't write the original user.ini 
session.save_path="PERSISTENT=SFSESSID ${MEMCACHIER_SERVERS}" 
session.gc_maxlifetime=1209600 
session.gc_probability=1 

memcached.sess_binary=1 
memcached.sess_sasl_username=${MEMCACHIER_USERNAME} 
memcached.sess_sasl_password=${MEMCACHIER_PASSWORD} 

हमारी नई user.ini विन्यास, जो करने के लिए उद्देश्य से है 123.45678.us-east-1.heroku.prod.memcachier.com:11211,123.45678.us-east-1.heroku.prod.memcachier.com:11211: विफलता क्षमता

session.save_handler=memcached 
session.save_path="PERSISTENT=SFSESSID ${MEMCACHIER_SERVERS}" 
session.gc_maxlifetime=1209600 
session.gc_probability=1 

memcached.sess_sasl_username=${MEMCACHIER_USERNAME} 
memcached.sess_sasl_password=${MEMCACHIER_PASSWORD} 
memcached.sess_binary=1 
memcached.sess_number_of_replicas=1 
# I also tried memcached.sess_consistent_hash=1, to no avail 

MEMCACHIER_SERVERS env var इस तरह दिखता है प्रदान करते हैं। मुझे लगता है कि इसका मतलब है कि हमारे पास 2 नोड्स हैं।

नई कॉन्फ़िगरेशन के साथ हम जो समस्याएं प्राप्त कर रहे हैं वह टाइमआउट हैं, और PHP सत्र फ़ंक्शंस (session_start(), session_write_close()) के संबंध में कई त्रुटियां हैं।

ऐसा क्यों हो रहा है?

याद रखें, हम अपने PHP कोड के अंदर मेमकैड का उपयोग नहीं कर रहे हैं, लेकिन केवल हमारे सत्र स्टोरेज इंजन के रूप में।

मैंने मेमकैचियर समर्थन से संपर्क करने का प्रयास किया, लेकिन ग्राहक प्रतिनिधि केवल अनुशंसित PHP कोड प्रदान कर सकता था (जिसे हमें आवश्यकता नहीं है)।

+0

पर्यावरण के बारे में बिल्कुल यकीन नहीं है, आप इसे उच्च उपलब्ध कराने के लिए प्रॉक्सी क्यों नहीं जोड़ते? – Yarco

+0

Memcachier SaaS हमारे लिए यह करता है। –

+0

'session.gc_divisor' का मूल्य क्या है? शायद सत्र कचरा संग्रह अक्सर शुरू किया जाता है? –

उत्तर

1

क्योंकि बक्षीस समाप्त हो गया है और प्रश्न जल्द ही बंद हो जाएगा, मैं @ jdotjdot के सुझाव के साथ आगे बढ़ने जा रहा हूं और मेमकैचियर से मेमकैडक्लाउड एडन में स्विच कर रहा हूं।

+0

बोर्ड पर आपका स्वागत है :) –

संबंधित मुद्दे