চেঞ্জলগ হিসাবে মঙ্গোডিবি ব্যবহার করে দুটি সিস্টেমের মধ্যে সিঙ্ক্রোনাইজেশন


11

আমরা দুটি সম্পর্কিত সিস্টেম বিকাশ করছি। এর মধ্যে একটি (এ) আমাদের গ্রাহকদের মেশিনে ইনস্টল করা হবে। বাকি (বি) আমার সংস্থা ব্যবহার করবে।

প্রতিটি সিস্টেমের নিজস্ব ডেটাবেস (রিলেশনাল) থাকে এবং তাদের স্কিমার পার্থক্য থাকে। তবে উভয় সিস্টেমই সিঙ্ক্রোনাইজ করতে হবে। এছাড়াও, বি এর কিছু পরিবর্তন সমস্ত শ্রেণির এ সিস্টেমে এবং অন্যান্য নির্দিষ্ট ক্ষেত্রে রফতানি করতে হয়।

কিছু গ্রাহকের ইন্টারনেট সংযোগ নেই তাই কিছু ক্ষেত্রে ফাইলের আদান-প্রদানের মাধ্যমে সিঙ্ক্রোনাইজেশন করতে হয়।

সুতরাং, আমরা নিম্নলিখিত হিসাবে এই সমস্যাটি সমাধান করার পরিকল্পনা করছি:

  1. প্রতিটি সিস্টেম তার ডাটাবেসের চেঞ্জলগ বজায় রাখে। আমরা এটি মঙ্গোডিবি দিয়ে বাস্তবায়নের পরিকল্পনা করছি।
  2. যখন কোনও সিস্টেম একটি সিঙ্ক্রোনাইজেশন প্রক্রিয়া শুরু করে, এটি লগ থেকে সমস্ত করা পরিবর্তনগুলি পুনরুদ্ধার করে। সিস্টেমটি যদি বি হয় তবে পরিবর্তনগুলি পুনরুদ্ধার করা গন্তব্যের উপর নির্ভর করে। তারপরে, সিস্টেমটি তাদের এক্সএমএল ফর্ম্যাটে সিরিয়াল করে এবং অবশেষে তাদের প্রেরণ করে (কোনও ফাইল বা কোনও নেটওয়ার্কের মাধ্যমে)।
  3. যখন অন্য শেষ পয়েন্টটি পরিবর্তনটি গ্রহণ করে, এটি তাদের আনসিরিয়ালাইজ করে। তারপরে, সিস্টেমটি ডেটাগুলির মাধ্যমে কিছু রূপান্তর করে, যা প্রয়োজনীয় হতে পারে এবং শেষ পর্যন্ত, পরিবর্তনগুলি রেকর্ড করে। এই পদক্ষেপে, এটির প্রয়োজনে, সিস্টেমটিকে বিদ্যমান বিবাদগুলির সমাধান করতে হবে।
  4. সবশেষে, রিসিভার সিস্টেমটি তার পরিবর্তনগুলি (এবং সংঘাতের সমাধানের অন্যান্য পণ্যগুলি) প্রেরণ করে।

এই পদ্ধতির কি সম্ভব, স্কেলযোগ্য এবং মার্জিত? আপনি কোন পরিবর্তন বা সংযোজন করবেন?


প্রতিলিপিযুক্ত ডেটাতে সহায়তা করার জন্য আপনি ডিবিএমএস-এর সাথে যুক্ত কোনও সরঞ্জামের দিকে নজর রেখেছেন? কোন ডিবিএমএস জড়িত?
অ্যাডাম জুকারম্যান 21

আমরা মাইএসকিউএল 5.5.8 ব্যবহার করছি। আমরা কয়েকটি সরঞ্জাম দেখেছি তবে আমরা মনে করি যে সেগুলি আমাদের প্রয়োজনীয়তার সাথে খাপ খায় না।
k91

একটি ক্ষতি হ'ল অবজেক্টআইডস একঘেয়েভাবে বাড়ায় না।
কোডসইনচাউস

উত্তর:


1

আপনি যদি ইতিমধ্যে এটি না করে থাকেন তবে ইভেন্ট-চালিত সিস্টেমগুলি, ইভেন্ট সোর্সিং এবং ইভেন্টের ধারাবাহিকতাটি পড়া আপনার কাছে আকর্ষণীয় মনে হতে পারে। আপনি যে সিস্টেমটি বর্ণনা করছেন তার মধ্যে এই নিদর্শনগুলির সাথে অনেকগুলি সমান্তরাল রয়েছে, যা একটি ভাল জিনিস।

আপনার দৃষ্টিভঙ্গি ভাল লাগছে, বিশেষত:

  • অর্ডারড চেঞ্জলগের ব্যবহারের অর্থ হ'ল সিঙ্ক্রোনাইজেশন প্রক্রিয়া সর্বশেষ দেখা পরিবর্তনের পর থেকে করা পরিবর্তনগুলি পুনরুদ্ধারে সক্ষম। এটি প্রক্রিয়াকরণের সময়কে কমিয়ে দেবে যা স্কেলিবিলিটিতে সহায়তা করে এবং ইন্টারনেট সংযোগ উপলব্ধ এমন ক্ষেত্রে আপনি নিকট-রিয়েল-টাইম সিঙ্ক্রোনাইজেশন তৈরি করতে পারবেন।
  • ইন্টারনেট সংযোগবিহীন গ্রাহকরা আপনাকে দ্রুত সিঙ্ক্রোনাইজেশনের উপর নির্ভর করার পরিবর্তে এবং অবিচ্ছিন্নভাবে স্কেলিবিলিটি সমস্যাগুলি সমাপ্ত করার পরিবর্তে বিলম্বিত এবং বহির্গমন-আদেশের সিঙ্ক্রোনাইজেশনের সাথে মোকাবিলা করার বিষয়ে ভাবতে বাধ্য করে।

ডোমেন মডেল সম্পর্কে আরও না জেনে আমার অনুমান যে দ্বন্দ্বগুলি সমাধান করা সেই অংশ যা আপনাকে সবচেয়ে বেশি সমস্যার কারণ করবে। প্রতিটি ধরণের সংঘাত কীভাবে সমাধান করা হবে তা ভেবে আমি কিছুটা সময় ব্যয় করব। নির্দিষ্টভাবে:

  • কিছু দ্বন্দ্ব কি ব্যবহারকারী রেজোলিউশন প্রয়োজন?
  • দ্বন্দ্ব নিরসনের জন্য গ্রাহক সিস্টেম সর্বদা সঠিক স্থান হতে চলেছে?
  • গ্রাহক সিস্টেম যখন তার পরিবর্তনগুলি প্রেরণ করে তখন step ধাপের পরে সিস্টেম বিতে দ্বন্দ্ব হওয়া কি সম্ভব?

0

প্রতিটি সিস্টেম তার ডাটাবেসের চেঞ্জলগ বজায় রাখে। আমরা এটি মঙ্গোডিবি দিয়ে বাস্তবায়নের পরিকল্পনা করছি।

আপনি ইভেন্টস্টোর ব্যবহার করতে পারেন । সেখানে ডেটাতে কোনও আপডেট স্টোরের মধ্যে একটি নতুন ইভেন্ট তৈরি করবে।

যখন একটি সিস্টেম একটি সিঙ্ক্রোনাইজেশন প্রক্রিয়া শুরু করে, এটি লগ থেকে সমস্ত করা পরিবর্তনগুলি পুনরুদ্ধার করে। সিস্টেমটি বি হয়, পরিবর্তনগুলি পুনরুদ্ধার করা গন্তব্যের উপর নির্ভর করে। তারপরে, সিস্টেমটি তাদের এক্সএমএল ফর্ম্যাটে সিরিয়াল করে এবং অবশেষে তাদের প্রেরণ করে (কোনও ফাইল বা কোনও নেটওয়ার্কের মাধ্যমে)।

ইভেন্টগুলি প্রেরণের জন্য আপনি যে কোনও প্রক্রিয়া ব্যবহার করতে পারেন, তবে যেখানে আপনাকে ফাইলগুলি মোকাবেলা করতে হবে না সেখানে বাস ব্যবহার করা সহজ হবে। সাধারণত এগুলি বার্তাগুলি ধরে রাখতে কনফিগার করতে পারে যতক্ষণ না এটি প্রেরণের জন্য সংযোগ উপলব্ধ থাকে available

যখন অন্য শেষ পয়েন্টটি পরিবর্তনটি গ্রহণ করে, এটি তাদের আনসিরিয়ালাইজ করে। তারপরে, সিস্টেমটি ডেটাগুলির মাধ্যমে কিছু রূপান্তর করে, যা প্রয়োজনীয় হতে পারে এবং শেষ পর্যন্ত, পরিবর্তনগুলি রেকর্ড করে। এই পদক্ষেপে, এটির প্রয়োজনে, সিস্টেমটিকে বিদ্যমান বিবাদগুলির সমাধান করতে হবে।

কেবল আপনার ডোমেন অবজেক্টগুলিতে ইভেন্টগুলি প্রয়োগ করুন।

সবশেষে, রিসিভার সিস্টেমটি তার পরিবর্তনগুলি (এবং সংঘাতের সমাধানের অন্যান্য পণ্যগুলি) প্রেরণ করে।

একই পদ্ধতি ব্যবহার করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.