মাইক্রোসার্চিস আর্কিটেকচার ডোমেন মডেলগুলি ভাগ করেছে


12

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


1
যখনই সম্ভব সম্ভব সত্যের একক উত্স থাকা ভাল ।
রবার্ট হার্ভে

@ রবার্টহার্ভে কীভাবে বহুবিবাহের অধ্যবসায়কে প্রভাবিত করবে? সমস্ত ডোমেন অবজেক্টের জন্য ভাগ করা লাইব্রেরি ব্যবহারের অর্থ কি এখনও প্রতিটি মাইক্রোসারওয়াইসের নিজস্ব ডাটাবেস থাকতে পারে?
ব্যবহারকারী 1176999

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

উত্তর:


12

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

সামগ্রিক স্থাপত্য

আমি মনে করি যে সর্বোত্তম পন্থা হবে:

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

অতিরিক্ত পড়া:

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

কোড শেয়ারিং

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

  • নমনীয় এবং স্বতন্ত্র প্রকাশের চক্রকে মঞ্জুরি দেওয়ার জন্য দৃ separa় পৃথকীকরণের অনুসরণ করে প্রতিটি মাইক্রোসার্ভিস গ্রাহক কোডকে পুনরায় উদ্ভাবন করতে পারে,
  • বা লাইব্রেরির অংশ হিসাবে ভোক্তা কোডটি ভাগ করে নেওয়া, এই মৌলিক তথ্যটি "চ্যাসিস" অবকাঠামোগত বিন্যাসের একটি বর্ধক হিসাবে বিবেচনা করে ।

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

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

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

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

1

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

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

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