মনোলিথ থেকে মাইক্রোসার্ফেসে স্থানান্তরিত করার সময় কীভাবে বিদেশী কী সীমাবদ্ধতাগুলি পরিচালনা করবেন?


18

আমার দলটি একাদিক ASP.NET অ্যাপ্লিকেশন থেকে .NET কোর এবং কুবারনেটসে স্থানান্তরিত হচ্ছে। কোড পরিবর্তনগুলি যেমন চলছে তেমনি প্রত্যাশিতও হতে পারে তবে আমার দল যেখানে প্রচুর মতবিরোধের মুখোমুখি হচ্ছে তা ডাটাবেসের আশেপাশে।

আমাদের কাছে বর্তমানে বরং বৃহত এসকিউএল সার্ভার ডাটাবেস রয়েছে যা আমাদের পুরো ব্যবসায়ের জন্য সমস্ত ডেটা রাখে। আমি প্রস্তাব দিচ্ছি যে আমরা কোডটি বিভক্ত করার মতো একই উপায়ে ডাটাবেসকে বিভক্ত করি - এক (লজিকাল) ডাটাবেসে ক্যাটালগ ডেটা, অন্যটিতে ইনভেন্টরি ডেটা, অন্যটিতে অর্ডার, ইত্যাদি - এবং প্রতিটি মাইক্রোসারওয়াইস তার ডাটাবেসের জন্য দ্বাররক্ষী হবে ।

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

আমি মাইক্রোসার্চিসে চলে যাওয়ার এবং প্রয়োজনীয় স্কেলিবিলিটি সুবিধাগুলি প্রাপ্তিতে প্রয়োজনীয় বাণিজ্য বন্ধ হিসাবে এর ক্ষতি দেখতে পাচ্ছি। যতক্ষণ না আমরা বিজ্ঞতার সাথে আমাদের সিমগুলি চয়ন করি এবং তাদের চারপাশে বিকাশ করি তবে এটি ঠিক হওয়া উচিত। অন্যান্য দলের সদস্যরা দৃama়রূপে যে সমস্ত কিছু অবশ্যই অবিবাহিত ডেটাবেজে থাকা উচিত যাতে সমস্ত কিছু এসিডি হতে পারে এবং সর্বত্রই রেফারেন্সিয়াল অখণ্ডতা রক্ষিত থাকে।

এটি আমার প্রশ্নে নিয়ে আসে। প্রথমত, বিদেশী মূল সীমাবদ্ধতার বিষয়ে আমার অবস্থান কি দৃus়তাযুক্ত হয়? যদি তা হয় তবে আমার সহকর্মীদের কাছে আমি যে কোনও বিশ্বাসযোগ্য পাঠ্য সামগ্রী প্রস্তাব করতে পারি সে সম্পর্কে কি কেউ সচেতন? তাদের অবস্থান প্রায় ধর্মীয় এবং তাদের মনে হয় না যে তারা মার্টিন ফোলার নিজেই তাদের ভুল বলছে বলে মনে করে যে তারা কোনও সংক্ষিপ্ত বিষয় দ্বারা বিতাড়িত হবে।


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

ভাল দিক. স্বল্পমেয়াদী লাভের জন্য আমরা সেই কয়েকটি বিকল্পের সন্ধান করছি। যদিও মাইক্রোসার্ভেসিসে সরানো দীর্ঘ খেলা। আমার মতে এটি আমাদের কয়েক মাসের চেয়ে বছরের পর বছর স্কেল করার অনুমতি দেবে।
রেমন্ড সালট্রেলি

3
আমি নিশ্চিত যে আপনার গ্রাহকরা শিহরিত হয়ে উঠবেন যে তারা 0.05 মিমি দ্রুতগতিতে অর্ডার করেছে তা বাতিল হয়ে যায় কারণ যখন কেবলমাত্র একটি স্টক বাকি ছিল তখন অন্য কেউ একই পণ্যটি অর্ডার করেছিল।
অ্যান্ডি

@ এ্যামন এটির উত্তর দিন এবং আমি এটি উত্সাহিত করব। এটি একটি ভাল প্রশ্ন এবং উপকারের পক্ষে মোটামুটিভাবে উপস্থাপন করা দরকার।
ম্যাকটল

@ এমকোটল ঠিক আছে, শেষ!
আমন

উত্তর:


19

কোনও সুস্পষ্ট সমাধান নেই কারণ এটি পুরোপুরি আপনার প্রসঙ্গে নির্ভর করে - বিশেষত, আপনার সিস্টেমটি কোন মাত্রার সাথে স্কেল করার কথা বলেছে এবং আপনার আসল সমস্যাগুলি কী। ডাটাবেস কি আসলেই আপনার বাধা?

এই (দুর্ভাগ্যক্রমে বরং দীর্ঘতর) উত্তরটি কিছুটা পড়বে যেমন "মাইক্রোসার্ভিসেসগুলি খারাপ, জীবনের এককথায়!", তবে এটি আমার উদ্দেশ্য নয়। আমার বক্তব্যটি হ'ল মাইক্রোসার্ভেসিস এবং বিতরণ করা ডাটাবেসগুলি বিভিন্ন সমস্যার সমাধান করতে পারে তবে তাদের নিজস্ব কিছু সমস্যা ছাড়াই নয়। আপনার আর্কিটেকচারের জন্য দৃ to় যুক্তি তৈরি করার জন্য, আপনাকে অবশ্যই দেখাতে হবে যে এই সমস্যাগুলি প্রযোজ্য নয়, প্রশমিত হতে পারে এবং আপনার ব্যবসায়ের প্রয়োজনের জন্য এই আর্কিটেকচারটি সেরা পছন্দ।

বিতরণ করা ডেটা কঠিন।

আরও ভাল স্কেলিং সক্ষম করে এমন একই নমনীয়তা হ'ল দুর্বল গ্যারান্টিগুলির ফ্লিপ দিক। উল্লেখযোগ্যভাবে, বিতরণ সিস্টেমগুলি সম্পর্কে বিতর্ক করা অনেক কঠিন।

পারমাণবিক আপডেট, লেনদেন, ধারাবাহিকতা / রেফারেনশিয়াল অখণ্ডতা এবং স্থায়িত্ব অত্যন্ত মূল্যবান এবং খুব তাড়াতাড়ি ছাড় দেওয়া উচিত নয়। এটি অসম্পূর্ণ, পুরানো, অথবা একেবারে ভুল হলে ডেটা রাখার খুব একটা বিন্দু নেই। আপনার যখন ব্যবসায়ের প্রয়োজনীয়তা হিসাবে এসিডি থাকে তবে এটি এমন ডেটাবেস প্রযুক্তি ব্যবহার করে যা এটিকে বাক্সের বাইরে সরবরাহ করতে পারে না (উদাঃ অনেক নোএসকিউএল ডাটাবেস, বা একটি ডিবি-প্রতি-মাইক্রো সার্ভিস আর্কিটেকচার), তারপরে আপনার অ্যাপ্লিকেশনটিকে অবশ্যই শূন্যস্থান পূরণ করতে হবে এবং সেই নিশ্চয়তাগুলি সরবরাহ করতে হবে।

  • এটি করা অসম্ভব নয়, তবে সঠিক হওয়ার জন্য কৌশলটি জটিল। খুব কৌতুকময়। বিশেষত এমন একটি বিতরণ সেটিংয়ে যেখানে প্রতিটি ডাটাবেসে একাধিক লেখক থাকে। এই অসুবিধাটি সম্ভবত বাদ পড়া ডেটা, অসঙ্গতিযুক্ত ডেটা এবং আরও অনেকগুলি বাগের উচ্চ সম্ভাবনায় অনুবাদ করে।

    উদাহরণস্বরূপ, জ্যাপসেন সুপরিচিত বিতরণকৃত ডাটাবেস সিস্টেমগুলির বিশ্লেষণগুলি পড়ার বিষয়ে বিবেচনা করুন , সম্ভবত ক্যাসান্দ্রার বিশ্লেষণ দিয়ে শুরু করুন । আমি এই বিশ্লেষণের অর্ধেকটি বুঝতে পারি না, তবে টিএল; ডিআর হ'ল বিতরণকারী সিস্টেমগুলি এতটাই কঠিন যে এমনকি শিল্প-শীর্ষস্থানীয় প্রকল্পগুলি কখনও কখনও সেগুলিকে ভুল করে দেয়, যেগুলি অন্ধকারে স্পষ্ট বলে মনে হয়।

  • বিতরণ সিস্টেমগুলি বৃহত্তর বিকাশের প্রচেষ্টা বোঝায়। একটি নির্দিষ্ট ডিগ্রীতে, বিকাশকারী হার্ডওয়্যারে বিকাশের ব্যয় বা অর্থ নেমে যাওয়ার মধ্যে সরাসরি বাণিজ্য বন্ধ রয়েছে।

উদাহরণ: ঝুলন্ত রেফারেন্স

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

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

  • নোট করুন যে এর জন্য JOINএকাধিক ডাটাবেস / মাইক্রোসার্ভেসিসের উপরে অ্যাপ্লিকেশন-স্তরের প্রয়োজন হতে পারে , যা কেবল আপনার অ্যাপ্লিকেশনটিতে ডাটাবেস সার্ভার থেকে প্রক্রিয়াকরণ সরিয়ে দেয়। এটি মোট বোঝা বাড়ে এবং নেটওয়ার্কের মাধ্যমে অতিরিক্ত ডেটা সরাতে হয়।

  • এটি পৃষ্ঠাবদ্ধতার সাথে জগাখিচুড়ি করতে পারে। যেমন আপনি কোনও বিভাগ থেকে পরবর্তী 25 পণ্যগুলির জন্য অনুরোধ করুন এবং সেই প্রতিক্রিয়া থেকে অনুপলব্ধ পণ্যগুলি ফিল্টার আউট করুন। এখন আপনার অ্যাপ্লিকেশন 23 পণ্য প্রদর্শন করে। তত্ত্ব অনুসারে, শূন্য পণ্য সহ একটি পৃষ্ঠাও সম্ভব হবে!

  • আপনি প্রতিটি প্রাসঙ্গিক পরিবর্তনের পরে বা নিয়মিত বিরতিতে ড্যাংলিং রেফারেন্সগুলি পরিষ্কার করে এমন স্ক্রিপ্টটি মাঝে মাঝে চালাতে চাইবেন। মনে রাখবেন যে এই ধরনের স্ক্রিপ্টগুলি মোটামুটি ব্যয়বহুল কারণ তাদের এখনও প্রতিটি পণ্য / বিভাগের ব্যাকিং ডাটাবেস / মাইক্রোসার্চিস থেকে অনুরোধ করতে হবে এটি এখনও বিদ্যমান কিনা তা দেখার জন্য।

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

উদাহরণ: সমবর্তী আদেশগুলি

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

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

তবে সম্ভবত এটি কোনও বিকল্প নয়, উদাহরণস্বরূপ অত্যন্ত সামঞ্জস্যপূর্ণ সেটিংসের জন্য। প্রথম 10 সেকেন্ডের মধ্যে কনসার্টের টিকিট কিনতে ছুটে আসা 3000 লোক বিবেচনা করুন এবং ধরে নেওয়া যাক প্রাপ্যতার পরিবর্তনের জন্য প্রচার করতে 10 মিমি প্রয়োজন হবে। একাধিক লোকের কাছে শেষ টিকিট বিক্রির সম্ভাবনা কত? এই সংঘর্ষগুলি কীভাবে পরিচালনা করা হয় তার উপর নির্ভর করে, তবে একটি পোইসন বিতরণ ব্যবহার করে λ = 3000 / (10s / 10ms) = 3আমরা P(k > 1) = 1 - P(k = 0) - P(k = 1) = 80%10 মিটার বিরতিতে সংঘর্ষের সুযোগ পাই । আপনার অর্ডারগুলির বেশিরভাগ বিক্রয় এবং পরে বাতিল করা প্রতারণা না করেই সম্ভব কিনা তা আপনার আইনি বিভাগের সাথে একটি আকর্ষণীয় কথোপকথনের কারণ হতে পারে।

বাস্তববাদ মানে চেরি-সেরা বৈশিষ্ট্যগুলি বাছাই।

সুসংবাদটি হ'ল আপনাকে বিতরণ করা ডাটাবেস মডেলটিতে যেতে হবে না, যদি অন্যথায় এটির প্রয়োজন না হয়। আপনি যদি মাইক্রোসার্ভিসেসগুলি "সঠিকভাবে" না করেন তবে কেউ আপনার মাইক্রোসার্চিস ক্লাবের সদস্যপদ প্রত্যাহার করবে না, কারণ এরকম কোনও ক্লাব নেই - এবং মাইক্রোসার্চেসগুলি তৈরির সত্যিকারের কোনও উপায় নেই।

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

আপনি মাইক্রোসার্ভিসেস ছাড়াই স্কেল করতে পারেন।

মাইক্রোসার্ভেসিসের দুটি প্রধান সুবিধা রয়েছে:

  • সাংগঠনিক সুবিধা যা তাদের আলাদা দল দ্বারা স্বতন্ত্রভাবে বিকাশ ও মোতায়েন করা যায় (যার পরিবর্তে পরিষেবাগুলি স্থিতিশীল ইন্টারফেস দেওয়ার প্রয়োজন হয়)।
  • অপারেশনাল বেনিফিট যা প্রতিটি মাইক্রোসার্ভিস স্বাধীনভাবে মাপা যায় ।

যদি স্বাধীন স্কেলিংয়ের প্রয়োজন হয় না, মাইক্রোসার্ভেসিসগুলি অনেক কম আকর্ষণীয়।

একটি ডাটাবেস সার্ভার ইতিমধ্যে এক ধরণের পরিষেবা যা আপনি স্বতন্ত্রভাবে (কিছুটা) স্কেল করতে পারবেন, যেমন পড়ার প্রতিরূপ যুক্ত করে। আপনি সঞ্চিত পদ্ধতি উল্লেখ করেন। এগুলি হ্রাস করার ফলে এত বড় প্রভাব থাকতে পারে যে অন্য কোনও স্কেলাবিলিটি আলোচনা মোটা হয়ে গেছে।

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

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

আপনার কি শক্ত ব্যবসায়ের মামলা আছে?

আপনি আপনার প্রতিষ্ঠানের ব্যবসায়ের প্রয়োজনীয়তা সম্পর্কে অবগত আছেন এবং তাই বিশ্লেষণের ভিত্তিতে প্রতি মাইক্রো সার্ভিসেস আর্কিটেকচারের জন্য একটি যুক্তি তৈরি করতে পারেন:

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

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

স্কেলিবিলিটির জন্য একটি বড় YAGNI উপাদান রয়েছে। অনিশ্চয়তার মুখোমুখি হয়ে ওঠার জন্য, এটি এখন স্কেলিবিলিটির জন্য বিল্ডিংয়ের কৌশলগত ব্যবসায়িক সিদ্ধান্ত (মোট মোট ব্যয় কম, তবে সুযোগ ব্যয় জড়িত এবং প্রয়োজন হতে পারে না) স্কেলাবিলিটি সম্পর্কিত কিছু কাজ পিছিয়ে দেওয়া (প্রয়োজনে উচ্চতর মোট ব্যয়, তবে আপনার আরও ভাল আছে) প্রকৃত স্কেল ধারণা)। এটি প্রাথমিকভাবে কোনও প্রযুক্তিগত সিদ্ধান্ত নয়।


দুর্দান্ত উত্তর, আপনাকে ধন্যবাদ। আপনি এই বিবৃতিতে বিস্তারিত বলতে পারেন? আপনি কি বোঝাতে চেয়েছেন যে প্রক্রিয়া সংখ্যা হ্রাস করায় পারফরম্যান্সে বড় প্রভাব ফেলতে পারে? আপনি সঞ্চিত পদ্ধতি উল্লেখ করেন। এগুলি হ্রাস করার ফলে এত বড় প্রভাব থাকতে পারে যে অন্য কোনও স্কেলাবিলিটি আলোচনা মোটা হয়ে গেছে।
অ্যালান

1
@ অ্যালান সঞ্চিত পদ্ধতিগুলি ভাল জন্য ব্যবহার করা যেতে পারে তবে তারা দুটি কার্য সম্পাদনের সমস্যা সৃষ্টি করে: (1) আরও জটিল প্রশ্নগুলি ডাটাবেসের জন্য অনুকূলিত করা আরও বেশি কঠিন difficult (২) স্প্রোক ব্যবহারের অর্থ ডিবি সার্ভারে আরও কাজ করা। আরও স্কেল করার জন্য ওপি ডিবি বিভক্ত করতে চায় তবে জটিল স্প্রোকগুলি এড়ানো ইতিমধ্যে সেই হেডরুম সরবরাহ করতে পারে। অবশ্যই, স্প্রোকস এবং জটিল প্রশ্নগুলি পারফরম্যান্সের জন্যও ভাল হতে পারে, উদাহরণস্বরূপ যখন তারা কোনও প্রশ্নের উত্তর দেওয়ার জন্য ডিবি থেকে স্থানান্তরিত হওয়া ডেটার পরিমাণ কমিয়ে দেয় im ক্রস-সার্ভার জোনের প্রয়োজন হলে ডিবি বিভক্ত করা সমস্যাটিকে আরও খারাপ করে দেবে।
আমন

0

আমি বিশ্বাস করি উভয় পন্থা প্রশংসনীয়। আপনি এসিডি এবং একতাত্ত্বিক ডাটাবেসের সুবিধাগুলি ত্যাগ করে স্কেলাবিলিটি অর্জন করতে পারেন, পাশাপাশি বর্তমান আর্কিটেকচারের সাথে রাখতে পারেন এবং আরও বিতরণকৃত আর্কিটেকচারের স্কেল্যাবিলিটি এবং তত্পরতা ত্যাগ করতে পারেন। সঠিক সিদ্ধান্তটি পরবর্তী বছরগুলির জন্য বর্তমান ব্যবসায়িক মডেল এবং বুজ কৌশল থেকে আসবে। বিশুদ্ধরূপে প্রযুক্তিগত দৃষ্টিকোণ থেকে এটি একচেটিয়া রাখার পাশাপাশি আরও বিতরিত পদ্ধতির দিকে যাওয়ার ব্যথা রয়েছে। আমি সিস্টেমটি বিশ্লেষণ করে দেখব যে একতরফা আর্কিটেকচারে অপেক্ষা করা বা চালিয়ে যাওয়া উচিত সেগুলি নির্ধারণের জন্য ঝুঁকিগুলি, ব্যয়গুলি এবং সুবিধাগুলি মাপার এবং মূল্যায়নের জন্য অ্যাপ্লিকেশনগুলি / মডিউলগুলি / ব্যবসায়িক প্রক্রিয়াগুলি আরও জটিল critical


-1

আপনার অবস্থান দৃus় এবং সঠিক।

উল ডিবি আসক্তদের মধ্যে রঙ্গিনকে কীভাবে বোঝানো যায় তবে এটি আরও একটি প্রশ্ন। আমি বলব আপনার কাছে দুটি বিকল্প আছে।

  1. ডিবি যেখানে তার সীমাতে পৌঁছেছে তার একটি নিখুঁত উদাহরণ খুঁজুন। উদাহরণস্বরূপ আপনার কাছে 'সংরক্ষণাগার সারণী' রয়েছে? ঠিক আছে কেন? আপনি নিতে পারেন প্রতি সেকেন্ডে সর্বোচ্চ সংখ্যা কত? ইত্যাদি দেখান যে ডিবি প্রয়োজনীয়তা পূরণ করে না এবং আপনার সমাধান সেগুলি ঠিক করে।

  2. আপনার কাছে সেরা সমাধানের কথা বলার জন্য ব্যয়বহুল ঠিকাদারদের ভাড়া করুন। কারণ এগুলি ব্যয়বহুল এবং ব্লগ রয়েছে প্রত্যেকে তাদের বিশ্বাস করবে


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

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

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

প্রতি-পরিষেবা-ডাটাবেসের জন্য সর্বোত্তম যুক্তি হ'ল সংযোগ সীমা। সংযোগ পুলিংটি ব্যবহার করা অস্বাভাবিক নয়, সুতরাং প্রতিটি মাইক্রোসার্ফাইসে ইতিমধ্যে ডাটাবেসের উদাহরণের সাথে একাধিক সংযোগের প্রয়োজন হয়, তারপরে আপনার নিজের প্রতিটি পুলের সাথে এই মাইক্রো সার্ভিসের একাধিক উদাহরণ থাকতে পারে। ঘটনাচক্রে জিনিসগুলি মাথায় আসতে পারে, যেখানে আপনি যে সমস্ত সংযোগগুলি পেয়ে যাচ্ছেন তা পরিচালনা করার জন্য আপনি কেবল ডাটাবেসের দক্ষতা শেষ করে দিয়েছেন।
ক্রিস প্র্যাট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.