মাস্টার-মাস্টার প্রতিলিপি আপনি যতটা ভাবেন ঠিক ততটা ভাল নয়, এটি রাউন্ড-রবিন প্রক্সি এবং অনুরূপ 'সহজ' সমাধানগুলিতে যায়। যদি আপনি যথেষ্ট পরিমাণে সার্ভারকে পৃথক করার জন্য সংঘর্ষের ডেটা প্রতিশ্রুতিবদ্ধ করেন (সার্ভারগুলির মধ্যে বিলম্বের চেয়ে দ্রুত, যা উত্পাদনকারী সার্ভারগুলিতে সম্পূর্ণ দ্বিতীয় হতে পারে *) তবে উভয়ই ডেটা গ্রহণ করবে। আপনার যদি নিলাম সার্ভার থাকে তবে আপনি একই গাড়িটি দু'বার বিক্রি করেছেন । কে কিনেছে? এটি নির্ভর করে আপনি কোন ডিবিকে জিজ্ঞাসা করবেন!
অ্যাপ্লিকেশনটি অবশ্যই সচেতন হতে হবে যে সেখানে 2 টি ডাটাবেস আছে এবং এটি তাদের আইপি ঠিকানা উভয়ই জানতে হবে। আপনি যদি "বিক্রয়" করতে চান তবে আপনার উচিত ফে
DB_number = `auction_number` % `number_of_databases`
( %জন্য modulo)
... এবং এটি DB_number ডাটাবেসে প্রতিশ্রুতিবদ্ধ করুন। যদি আপনি কোনও সংযোগ ত্রুটি পান তবে সম্ভবত এটি অন্যটির সাথে করুন (তবে নিলাম সার্ভারের ক্ষেত্রে আমি কেবল একটি ত্রুটি প্রদর্শন করব)।
এছাড়াও, উভয় সার্ভারের মধ্যে আইপি ঠিকানাগুলি ওয়াক্যামোল-ডি হওয়া উচিত । একটি দুর্যোগের পরিস্থিতিতে, যেখানে একটি ডাটাবেস সার্ভার সর্বোচ্চ ব্যবহারের সময় কয়েক ঘন্টা অবনমিত হয়, আপনি দেখতে পাবেন যে অ্যাপ্লিকেশনটি অনুপস্থিত সার্ভারের সাথে সংযোগ স্থাপনের চেষ্টা করবে এবং TIMEOUT পর্যন্ত বলবে, 3s বলবে। হঠাৎ আপনার প্রশ্নের অর্ধেকগুলি 3s দীর্ঘ চালায় (এবং সেগুলি শেষ পর্যন্ত একই ডাটাবেসে যায় - যা এটিকে দুর্যোগের আগের চেয়ে দ্রুত চালিত করে না)। এটি আপনার httpdকে খুশি করে না, কারণ এতে সম্ভবত সমবর্তী অনুরোধ হ্যান্ডলার থ্রেডগুলির একটি সীমাবদ্ধ সংযোগ পুল রয়েছে ...
* প্রোডাকশন সার্ভারের প্রতিরূপে বিলম্বটি পুরো দ্বিতীয় পর্যন্ত হতে পারে - আমি এটি একটি দূরবর্তী সমষ্টি এবং আমাদের ডেটাসেন্টারে পরীক্ষা করেছি এবং সময়টির 99% এর মত এটি 0, তবে কখনও কখনও মাইএসকিএল 1 এস দেখায়। বিশাল ট্র্যাফিকের সাথে ক্লায়েন্টের অ্যাপ্লিকেশন দেওয়ার কারণে আমার দুটি সংঘর্ষের মুখোমুখি হয়েছিল যার ফলে দুটি প্রশ্নের জন্য দুটি অনুরোধ করা হয়েছে, সন্নিবেশ করান এবং নির্বাচন করুন। কিছু ক্ষেত্রে, সারিটি এখনও ছিল না , তাই আমরা ইউজারআইডি এর হ্যাশ ব্যবহার করেছি এবং এটি সমস্যার সমাধান করেছে
আমি আশা করি আপনি আমার ভুলগুলি থেকে শিখবেন ;-)