অর্কেস্ট্রিং মাইক্রোসার্ভেসেস


200

অর্কেস্ট্রেটিং মাইক্রোসার্ভেসিসগুলির স্ট্যান্ডার্ড প্যাটার্নটি কী?

যদি কোনও মাইক্রোসারওয়াইস কেবল তার নিজস্ব ডোমেন সম্পর্কে জানে তবে এমন একটি প্রবাহ রয়েছে যা একাধিক পরিষেবাগুলির কোনও উপায়ে ইন্টারঅ্যাক্ট করে, এটির উপায় কী?

আসুন আমরা এই জাতীয় কিছু আছে বলুন:

  • চালান
  • জাহাজে প্রেরিত কাজ

এবং তর্কের খাতিরে, যাক যে একবার আদেশ অর্পণ করা হয়ে গেলে, চালানটি তৈরি করা উচিত।

কোথাও, কেউ একটিতে একটি বোতাম টিপছে GUI, "আমি হয়ে গেছি, আসুন এটি করা যাক!" একটি ক্লাসিক একশব্দ পরিষেবা আর্কিটেকচারে, আমি বলব যে ESBএটির একটি পরিচালনা রয়েছে, বা চালান পরিষেবাটিতে চালান পরিষেবা সম্পর্কে জ্ঞান আছে এবং কেবল এটি কল করে।

কিন্তু মাইক্রো সার্ভিসেসের এই সাহসী নতুন জগতে লোকেরা এর সাথে কীভাবে আচরণ করে?

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

অঙ্কুর।

উত্তর:


316

বুক বিল্ডিং মাইক্রোসার্ভেসিস তার উত্তরে @ রোজারএলসিং দ্বারা উল্লিখিত স্টাইলগুলি সম্পর্কে বিশদভাবে বর্ণনা করেছে।

অর্কেস্টেশন বনাম কোরিওগ্রাফির আওতায় 43 পৃষ্ঠায় বইটি বলেছে:

আরও জটিল জটিল যুক্তি মডেল করা শুরু করার সাথে সাথে আমাদের ব্যক্তিগত প্রক্রিয়াগুলির সীমানা জুড়ে বিস্তৃত ব্যবসায়ের প্রক্রিয়াগুলি পরিচালনা করার সমস্যাটি মোকাবেলা করতে হবে। এবং মাইক্রোসার্ভিসেস সহ, আমরা এই সীমাটিকে স্বাভাবিকের চেয়ে শীঘ্রই হারাব। [...] যখন এই প্রবাহটি বাস্তবে বাস্তবায়নের কথা আসে, সেখানে দুটি স্টাইলের আর্কিটেকচার আমরা অনুসরণ করতে পারি। অর্কেস্টেশন সহ, আমরা প্রক্রিয়াটি পরিচালনা এবং পরিচালনা করতে কেন্দ্রীয় মস্তিষ্কের উপর নির্ভর করি, অনেকটা অর্কেস্ট্রাতে কন্ডাক্টরের মতো। কোরিওগ্রাফির সাহায্যে আমরা তার কাজের সিস্টেমটির প্রতিটি অংশকে অবহিত করি এবং নর্তকীর মতো সমস্ত তাদের উপায় খুঁজে বের করে এবং একটি ব্যালেতে তাদের চারপাশের অন্যদের প্রতিক্রিয়া জানায় like

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

অর্কেস্ট্রেশন স্টাইল

এই স্টাইলের আওতায় উপরের বইটি উল্লেখ করেছে:

এই প্রবাহের জন্য একটি অর্কেস্টেশন সমাধান কেমন হবে সে সম্পর্কে ভাবুন। এখানে, সম্ভবত সবচেয়ে সহজ কাজটি হ'ল আমাদের গ্রাহক পরিষেবাটি কেন্দ্রীয় মস্তিষ্ক হিসাবে কাজ করা। তৈরির সময়, এটি আনুগত্য / প্রতিক্রিয়া কলগুলির একটি সিরিজের মাধ্যমে আনুগত্য পয়েন্ট ব্যাংক, ইমেল পরিষেবা এবং ডাক পরিষেবা [...] এর সাথে কথা বলে। এরপরে গ্রাহক পরিষেবা নিজেই ট্র্যাক করতে পারে কোনও গ্রাহক এই প্রক্রিয়াতে কোথায় আছেন। এটি গ্রাহকের অ্যাকাউন্ট সেট আপ হয়েছে কিনা, বা ইমেল প্রেরণ করা হয়েছে বা পোস্ট বিতরণ করা হয়েছে কিনা তা পরীক্ষা করে দেখতে পারে। আমরা ফ্লোচার্ট নিতে [...] এবং এটিকে সরাসরি কোডে মডেল করি। আমরা এমনকি এমন কোনও সরঞ্জাম প্রয়োগ করতে পারি যা এটি আমাদের জন্য কার্যকর করে, সম্ভবত কোনও উপযুক্ত নিয়ম ইঞ্জিন ব্যবহার করে। ব্যবসায়িক প্রক্রিয়া মডেলিং সফ্টওয়্যার আকারে বাণিজ্যিক উদ্দেশ্যে এই একই উদ্দেশ্যে বিদ্যমান। ধরে নেওয়া যায় যে আমরা সিঙ্ক্রোনাস অনুরোধ / প্রতিক্রিয়া ব্যবহার করি, আমরা এমনকি জানতে পারি যে প্রতিটি পর্যায়ে কাজ করেছে কিনা [...] এই অর্কেস্টেশন পদ্ধতির ক্ষুদ্রতর দিকটি হ'ল গ্রাহক পরিষেবা কেন্দ্রীয় প্রশাসনিক কর্তৃপক্ষের খুব বেশি হয়ে উঠতে পারে। এটি একটি ওয়েবের কেন্দ্রস্থল এবং কেন্দ্রীয় পয়েন্টের কেন্দ্রস্থল হয়ে উঠতে পারে যেখানে যুক্তি জীবনযাপন শুরু করে। আমি এই পদ্ধতির ফলাফল অল্প সংখ্যক স্মার্ট "গড" পরিষেবাদিতে দেখেছি যা রক্তাল্প সিআরইউডি ভিত্তিক পরিষেবাগুলি কী করতে হবে তা বলে।

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

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

কোরিওগ্রাফি স্টাইল

কোরিওগ্রাফি স্টাইলের অধীনে লেখক বলেছেন:

কোরিওগ্রাফ করা পদ্ধতির সাহায্যে আমরা পরিবর্তে গ্রাহক পরিষেবাটি একটি অ্যাসিনক্রোনাস পদ্ধতিতে কোনও ইভেন্ট প্রেরণ করতে পারি, গ্রাহক তৈরি করেছেন বলে। ইমেল পরিষেবা, ডাক পরিষেবা এবং আনুগত্য পয়েন্ট ব্যাংক তারপরে এই ইভেন্টগুলিতে কেবল সাবস্ক্রাইব করুন এবং সে অনুযায়ী প্রতিক্রিয়া জানান [...] এই পদ্ধতির উল্লেখযোগ্যভাবে আরও ডিকপলড is যদি গ্রাহকের সৃষ্টিতে পৌঁছানোর জন্য অন্য কোনও পরিষেবা প্রয়োজন হয় তবে এটি কেবল ইভেন্টগুলিতে সাবস্ক্রাইব করা প্রয়োজন এবং প্রয়োজনে এটির কাজটি করা দরকার। খারাপ দিকটি হ'ল আমরা [কর্মপ্রবাহ] এ দেখা ব্যবসায়ের প্রক্রিয়ার সুস্পষ্ট দৃষ্টিভঙ্গি এখন কেবল আমাদের সিস্টেমে স্পষ্টভাবে প্রতিফলিত হয়েছে [...] এর অর্থ আপনি সঠিক জিনিসগুলি পর্যবেক্ষণ করতে এবং ট্র্যাক করতে পারবেন তা নিশ্চিত করার জন্য অতিরিক্ত কাজ করা প্রয়োজন ঘটেছিলো. উদাহরণ স্বরূপ, আপনি কি জানতে পারবেন যদি আনুগত্য পয়েন্ট ব্যাংকে কোনও বাগ থাকে এবং কোনও কারণে সঠিক অ্যাকাউন্ট সেট আপ না করা হয়? আমি এর সাথে মোকাবিলা করার জন্য একটি পন্থা হ'ল একটি মনিটরিং সিস্টেম তৈরি করা যা [ওয়ার্কফ্লো] এর ব্যবসায়িক প্রক্রিয়ার দৃষ্টিভঙ্গিটির সাথে স্পষ্টভাবে মেলে, তবে তারপরে প্রতিটি পরিষেবা স্বতন্ত্র সত্তা হিসাবে কী করে তা ট্র্যাক করে, আপনাকে ম্যাপযুক্ত বিজোড় ব্যতিক্রমগুলি দেখতে দেয় ting আরও সুস্পষ্ট প্রক্রিয়া প্রবাহ। [ফ্লোচার্ট] [...] চালিকা শক্তি নয়, কেবল একটি লেন্স যার মাধ্যমে আমরা দেখতে পাচ্ছি যে সিস্টেমটি কীভাবে আচরণ করছে। সাধারণভাবে, আমি দেখেছি যে কোরিওগ্রাফাগুলি পদ্ধতির দিকে ঝোঁক রয়েছে এমন সিস্টেমগুলি আরও আলগাভাবে মিলিত হয়, এবং আরও নমনীয় এবং পরিবর্তনের জন্য উপযুক্ত হয়। তবে সিস্টেমের সীমানা জুড়ে প্রক্রিয়াগুলি নিরীক্ষণ এবং ট্র্যাক করতে আপনার অতিরিক্ত কাজ করার দরকার নেই। উচ্চতর পরিবর্তনের ব্যয় সহ আমি অত্যন্ত ভারীভাবে অর্কিস্ট্রেটেড বাস্তবায়নগুলি অত্যন্ত ভঙ্গুর হতে দেখেছি। এই বিষয়টি মনে রেখে, আমি দৃ strongly়ভাবে কোরিওগ্রাফ করা সিস্টেমের জন্য লক্ষ্য করা পছন্দ করি, যেখানে প্রতিটি পরিষেবা পুরো নাচের ক্ষেত্রে এর ভূমিকা বোঝার জন্য যথেষ্ট স্মার্ট is

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

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

সুতরাং, হেটোয়াস সম্পর্কে কী? (অ্যাপ্লিকেশন স্টেটের ইঞ্জিন হিসাবে হাইপারমিডিয়া)

এখন, আমরা যদি বিশ্রামের পদ্ধতির অনুসরণ করতে চাই তবে আমরা হেটোয়াসকে অগ্রাহ্য করতে পারি না বা রায় ফিল্ডিং তার ব্লগে এই বলে খুব খুশি হবে যে আমাদের সমাধানটি সত্যই বিশ্রাম নয়। REST এপিআইতে তার ব্লগ পোস্টটি হাইপারটেক্সট চালিত হতে হবে :

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

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

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

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

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

আমি মনে করি আমরা অর্কেস্ট্রেশন বা কোরিওগ্রাফি দিয়ে হেটোয়াস ব্যবহার করতে পারি।

এপিআই গেটওয়ে প্যাটার্ন

ক্রিস রিচার্ডসন আরও একটি আকর্ষণীয় প্যাটার্নের পরামর্শ দিয়েছিলেন, যিনি প্রস্তাব করেছিলেন তিনি একটি এপিআই গেটওয়ে প্যাটার্নও বলেছিলেন ।

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

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

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

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

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

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

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

এটি উপরে বর্ণিত অর্কেস্ট্রেশন শৈলীর সাথে বেশ সাদৃশ্যপূর্ণ বলে মনে হচ্ছে, এই ক্ষেত্রে, এটি পারফরম্যান্স এবং মিথস্ক্রিয়াটির সরলকরণ সম্পর্কে সমস্ত বলে মনে হয়।


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

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

দুর্দান্ত উত্তর! এপিআই গেটওয়েগুলি সম্পর্কে কেবল একটি প্রশ্ন: গ্রাফিক্যুয়াল কি পরবর্তী প্রজন্মের এপিআই গেটওয়ে, এবং এপিআই গেটওয়েগুলি খুব ভাল প্রতিস্থাপন করতে পারে?
কেনেহো

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

আমি একমত নই যে কোরিওগ্রাফিটি আরও আলগাভাবে মিলিত হয়েছে এবং তাই মাইক্রোসার্চেসের মাধ্যমে অর্কেস্টেশন এড়ানো দরকার। আমি উদাহরণস্বরূপ berndruecker.io/complex-event-flows-in-distributes- সিস্টেমে এ সম্পর্কে কথা বললাম । আপনার আপনার স্থাপত্যে আরও সুষম পদ্ধতির প্রয়োজন।
বার্ড রুয়েকার

35

এখানে বিভিন্ন পদ্ধতির একত্রিত করার চেষ্টা করছেন।

ডোমেন ইভেন্টস

এর জন্য প্রভাবশালী পদ্ধতির মনে হয় ডোমেন ইভেন্টগুলি ব্যবহার করা হচ্ছে, যেখানে প্রতিটি পরিষেবা যা ঘটেছিল সে সম্পর্কিত ইভেন্টগুলি প্রকাশ করে এবং অন্যান্য পরিষেবাগুলি সেই ইভেন্টগুলিতে সদস্যতা নিতে পারে। এই ধারণার সঙ্গে হাতে হাত যান বলে মনে হয় স্মার্ট এন্ড পয়েন্ট, মূক পাইপ : যে এখানে মার্টিন জালিয়া দ্বারা বর্ণনা করা হয় http://martinfowler.com/articles/microservices.html#SmartEndpointsAndDumbPipes

ডোমেন ইভেন্ট

প্রক্সি

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

প্রক্সি

রচনা অন্যান্য প্যাটার্ন

এই পৃষ্ঠায় বিভিন্ন রচনা নিদর্শন রয়েছে।


এখানে অন্যান্য নিদর্শনগুলি কী কী এবং কীভাবে আপনি তাদের একত্র করতে পারবেন তা এখানে একটি দুর্দান্ত ভিডিও এখানে রয়েছে youtu.be/tSN1gOVQfPs?t=35m35s আপনার প্রতিক্রিয়ায় এগুলি যুক্ত করার পরামর্শ দিন
গ্রিগরি গনচর

নিক ইমেজগুলি @ রোজার, আপনি কোন সরঞ্জামটি ব্যবহার করছেন?
সেলভাকুমার এসরা

1
@ সেলওয়াকুমার ইশরা ড্র.আইও
রজার জোহানসন

7

সুতরাং, কীভাবে মাইক্রোসার্চেসের অর্কেস্ট্রেশন পুরানো এসওএ পরিষেবাদিগুলি যেগুলি "মাইক্রো" নয় তার অর্কেস্ট্রেশন থেকে আলাদা? মোটেও বেশি নয়।

মাইক্রোসার্ভেসিস সাধারণত http (REST) ​​বা বার্তা / ইভেন্টগুলি ব্যবহার করে যোগাযোগ করে। অর্কেস্ট্রেশন প্রায়শই অর্কেস্ট্রেশন প্ল্যাটফর্মের সাথে সম্পর্কিত যা আপনাকে কর্মপ্রবাহগুলি স্বয়ংক্রিয় করতে পরিষেবাগুলির মধ্যে একটি স্ক্রিপ্টযুক্ত ইন্টারঅ্যাকশন তৈরি করতে দেয়। পুরানো SOA দিনগুলিতে, এই প্ল্যাটফর্মগুলি ডাব্লুএস-বিপিইএল ব্যবহার করেছিল। আজকের সরঞ্জামগুলি বিপিইএল ব্যবহার করে না। আধুনিক অর্কেস্ট্রেশন পণ্যগুলির উদাহরণ: নেটফ্লিক্স কন্ডাক্টর, ক্যামুন্ডা, জিবি, অ্যাজুরে লজিক অ্যাপস, বেকার।

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

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


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

5

সুতরাং আপনার দুটি পরিষেবা রয়েছে:

  1. চালান মাইক্রো পরিষেবা
  2. চালান মাইক্রো পরিষেবা

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

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

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

এইচটিএইচ, মার্ক


1

যদি রাজ্যটি পরিচালনা করতে হয় তবে সিকিউআরএস সহ ইভেন্ট সোর্সিং হ'ল যোগাযোগের আদর্শ উপায়। অন্যথায়, একটি অ্যাসিক্রোনাস মেসেজিং সিস্টেম (এএমকিউপি) আন্তঃ মাইক্রোসার্ভাইস যোগাযোগের জন্য ব্যবহার করা যেতে পারে।

আপনার প্রশ্ন থেকে, এটা পরিষ্কার যে সিকিউআরএস সহ ES সঠিক মিশ্রণ হওয়া উচিত। জাভা ব্যবহার করে, এক্সন কাঠামোটি একবার দেখুন। বা কাফকা বা রাব্বিটএমকিউ ব্যবহার করে একটি কাস্টম সমাধান তৈরি করুন।


-2

আমি এই বিষয়ে কয়েকটি পোস্ট লিখেছি:

হতে পারে এই পোস্টগুলিও সহায়তা করতে পারে:

এপিআই গেটওয়ে প্যাটার্ন - কোর্স-দানাযুক্ত এপিআই বনাম সূক্ষ্ম দানাযুক্ত এপিআই

https://www.linkedin.com/pulse/api-gateway-pattern-ronen-hamias/ https://www.linkedin.com/pulse/successfulapi-ronen-hamias/

মোটা দানাযুক্ত বনাম সূক্ষ্ম দানাযুক্ত পরিষেবা API

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


-2

মূল প্রশ্নের উত্তর হ'ল সাগা প্যাটার্ন।


4
আপনার উত্তর প্রসারিত যত্ন?
প্যাট্রিক মেভিজেক

সাগা লেনদেনের নকল করার চেষ্টা করে, প্রতিটি ক্রিয়াকলাপের জন্য আপনি একটি পূর্বাবস্থায় কাজ করেন operation যদি ক্রিয়াকলাপ ব্যর্থ হয় তবে পূর্বাবস্থায় ফিরে আসা ক্রিয়াকলাপগুলি পুরোপুরি উত্সের দিকে ফিরে যায়।
sschras

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