हम ज़ेड कैश का उपयोग एक कैश नोड्स के साथ एक एडब्ल्यूएस एलिस्टी कैश क्लस्टर को इंगित करने वाले एक मेमकैच बैकएंड के साथ कर रहे हैं। हमारे कैश सेटअप इस तरह दिखता है:एकाधिक सर्वरों पर AWS ElastiCache के साथ ज़ेंड कैश का उपयोग करके असंगत कैश मान
$frontend = array(
'lifetime' => (60*60*48),
'automatic_serialization' => true,
'cache_id_prefix' => $prefix
);
$backend = array(
'servers' => array(
array('host' => $node1),
array('host' => $node2)
)
);
$cache = Zend_Cache::factory('Output', 'memecached', $frontend, $backend);
हम अतीत में कैश के साथ कोई समस्या है जब एक ही EC2 सर्वर लिख सकते हैं और कैश से पढ़ने के लिए का उपयोग कर नहीं दिखाई दी।
हालांकि, हमने हाल ही में एक दूसरा ईसी 2 सर्वर पेश किया है और अचानक हम एक सर्वर से कैश को लिखते समय और दूसरे से पढ़ने के दौरान मुद्दों को देख रहे हैं। दोनों सर्वर एक ही एडब्लूएस खाते द्वारा प्रबंधित होते हैं, और न ही सर्वर को अलग-अलग कैश से लिखने या पढ़ने में समस्याएं होती हैं। दोनों के लिए एक ही कैश विन्यास का उपयोग किया जाता है।
सर्वर एक कार्यान्वित सर्वर एक से $cache->load('message');
को $cache->save('hello', 'message');
बाद कॉलहैलो के अपेक्षित परिणाम वापस जाएँ।
हालांकि, जब सर्वर बी$cache->load('message');
कार्यान्वित करता है, हम झूठी मिलता है।
जहां तक ElastiCache की मेरी समझ जाती है, सर्वर को पढ़ने के अनुरोध को वापस करने वाले कैश मान पर कोई असर नहीं होना चाहिए। क्या कोई इस पर रोशनी डाल सकता है?
मुझे लगता है कि यह एक विलंबता मुद्दा है, क्या आपने सोने की कोशिश की है (xxxx) और उसके बाद $ कैश-> बी से लोड करें? –
दुर्भाग्यवश, यह मामला नहीं है। यहां तक कि घंटों बाद भी ए से एक मूल्य सेट बी से पठनीय नहीं है। – michaelxor
PHP का कौन सा संस्करण आप उपयोग कर रहे हैं? मुझे लगता है कि धारावाहिकता यहां खेल में है। ऑटो धारावाहिकता को अक्षम करने का प्रयास करें और देखें कि क्या होता है। दुर्भाग्यपूर्ण दुष्प्रभाव यह है कि आपको मैन्युअल रूप से सब कुछ क्रमबद्ध करना है जो एक स्ट्रिंग नहीं है। –