গ্রাফকিউএল এবং মাইক্রোসার্ভাইস আর্কিটেকচার


176

আমি মাইক্রোসার্ভেস আর্কিটেকচারের মধ্যে গ্রাফকিউল ব্যবহার করার জন্য সবচেয়ে উপযুক্ত কোথায় তা বোঝার চেষ্টা করছি।

কেবলমাত্র 1 টি গ্রাফকিউএল স্কিমা রয়েছে যা এআইপি গেটওয়ে হিসাবে লক্ষ্যবস্তু মাইক্রোসার্ফেসিসে অনুরোধটি প্রক্সিং করে এবং তাদের প্রতিক্রিয়া জোর করে তোলে as মাইক্রোসার্ভেসিস এখনও যোগাযোগের চিন্তার জন্য REST / থ্রিফ্ট প্রোটোকল ব্যবহার করবে।

মাইক্রো সার্ভিস প্রতি একাধিক গ্রাফকিউএল স্কিমার পরিবর্তে আরেকটি পদ্ধতি। একটি ছোট এপিআই গেটওয়ে সার্ভার রয়েছে যা অনুরোধের সমস্ত তথ্য + গ্রাফিক্যুয়াল ক্যোয়ারী সহ টার্গেটযুক্ত মাইক্রোসার্চিসে অনুরোধটি রুট করে।

1 ম পন্থা

একটি এআইপিআই গেটওয়ে হিসাবে 1 গ্রাফকিউএল স্কিমা থাকার একটি বিপর্যয় হবে যেখানে প্রতিবার আপনি আপনার মাইক্রোসার্চিস চুক্তি ইনপুট / আউটপুট পরিবর্তন করেন, ততক্ষণে আমাদের এপিআই গেটওয়ে সাইডে গ্রাফকিউএল স্কিমা পরিবর্তন করতে হবে।

2 য় পন্থা

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

প্রশ্নাবলি

  • আপনি গ্রাফিক্যুয়ালকে মাইক্রোসার্চেস আর্কিটেকচার ডিজাইনের জন্য উপযুক্ত ফিট খুঁজে পান কিনা?

  • আপনি কীভাবে কোনও সম্ভাব্য গ্রাফকিউল বাস্তবায়ন সহ একটি এপিআই গেটওয়ে ডিজাইন করবেন?

উত্তর:


242

অবশ্যই # 1 এ যোগাযোগ করুন।

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

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

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

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


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

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

4
রাইট! :) এটি লেখার জন্য ধন্যবাদ! আমি আপনাকে মিডিয়াম এবং গিথুব এ্যাপোলো রেপোর মাধ্যমে অনুসরণ করছি! আপনার নিবন্ধ এবং পোস্ট খুব মূল্যবান! :) ভাল কাজগুলো করতে থাকো! আমি আরও মনে করি যে গ্রাফকিউএল + মাইক্রোসার্ভেসিস সহ একটি মাঝারি নিবন্ধটি পড়তে খুব উপভোগ্য হবে!
ফ্যাব্রিজিও ফেনোগলিও

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

বিকল্প # 2 এবং github.com/AEB-labs/ographicQl- উইয়ের সংমিশ্রনের বিষয়ে কীভাবে ?
মোহসেন

35

এখানে নিবন্ধটি দেখুন , যা কীভাবে এবং কেন # 1 পদ্ধতির আরও ভাল কাজ করে তা বলে। আমি নিবন্ধটি নিবন্ধ থেকে নেওয়া নীচের চিত্রটি দেখুন: এখানে চিত্র বর্ণনা লিখুন

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

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

নিম্নলিখিত নিবন্ধটি অন্যদের পাশাপাশি এই দুটি উপকারগুলি খুব ভালভাবে ব্যাখ্যা করেছে: https://nordicapis.com/7-unique-benefits-of- using-graphql-in-microservices/


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

1
প্রশ্নের উত্তর দেওয়ার জন্য @ এরিকবারেল ধন্যবাদ। প্রকৃতপক্ষে, যতদূর আমি নিবন্ধটি থেকে বুঝতে পেরেছি, বিভিন্ন পরিষেবাদির সমস্ত স্কিমা একটি গ্রাফকিউএল স্কিমার অধীনে একীভূত হয়েছে, সুতরাং আপনি উল্লিখিত হিসাবে, অন্যান্য পরিষেবাগুলি এখনও তাদের নিজস্ব ডেটাসেটগুলিতে থাকে। গ্রাফকিউএল গেটওয়ের জন্য একক উত্স ব্যর্থতার সম্ভাবনা সম্পর্কে, ব্যাকআপ পরিকল্পনা সরবরাহ করার মতো অন্যান্য বিকল্পগুলি সর্বদা থাকে। আরও তথ্যের জন্য দয়া করে এই নিবন্ধটি ( labs.getninjas.com.br/… ) পড়ুন। আশাকরি এটা সাহায্য করবে.
এনায়েত

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

7

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

একটিতে স্কিমাকে একত্রিত করার জন্য কয়েকটি দুর্দান্ত সরঞ্জাম রয়েছে যেমন, গ্রাফিক্যাল-ওয়েভার এবং অ্যাপোলো গ্রাফিকল-সরঞ্জামগুলি , আমি ব্যবহার করছি graphql-weaver, এটি ব্যবহার করা সহজ এবং দুর্দান্ত কাজ করে।


অ্যান্ড্রয়েডে গ্রাফকিউএল ব্যবহার করা আবশ্যক যে আমি সমস্ত প্রশ্নের সাথে একটি। অনুগ্রহকারী ফাইল তৈরি করব? বা আমি কি এই ফাইলটি ছাড়াই কোডগুলিতে তাদের তৈরি করতে পারি?
মুরো অ্যালেক্সান্দ্রো

1
@ মাউরো অ্যালেক্সান্দ্রো আমি অ্যান্ড্রয়েড লোক নই, তবে আপনার বিভিন্ন ফাইলগুলিতে প্রশ্ন থাকতে পারে। এটি আরও একটি ডিজাইনের সমস্যা। আইএমএইচও, আমি প্রথমটিকে পছন্দ করি :)
এইচএফএক্স

5

২০১২ সালের মাঝামাঝি পর্যন্ত 1 ম পদ্ধতির সমাধানটির জন্য এখন অ্যাপোলো লোকেদের দ্বারা নির্মিত " স্কিমা ফেডারেশন " নাম রয়েছে (আগে এটি প্রায়শই গ্রাফকিউএল সেলাই হিসাবে পরিচিত হত)। তারা মডিউলগুলি @apollo/federationএবং এর জন্যও প্রস্তাব দেয় @apollo/gateway

যোগ করুন: দয়া করে নোট করুন যে স্কিমা ফেডারেশন দিয়ে আপনি গেটওয়ে স্তরে স্কিমা পরিবর্তন করতে পারবেন না। সুতরাং আপনার স্কিমাতে আপনার প্রতিটি বিটের জন্য আপনার পৃথক পরিষেবা থাকা দরকার have


এটিও বৈধ যে এটি সমাধানটি অ্যাপোলো সার্ভারের দাবি করে যা বিনামূল্যে সংস্করণে সামান্য সীমাবদ্ধ (প্রতি মাসে সর্বোচ্চ 25 মিলিয়ন কোয়েরি)
মার্কস

0

2019 হিসাবে সেরা উপায় হ'ল মাইক্রোসার্জেসিস লিখুন যা অ্যাপোলো গেটওয়ে স্পেসিফিকেশন প্রয়োগ করে এবং তারপরে # 1 অনুসরণ করে একটি গেটওয়ে ব্যবহার করে এই পরিষেবাগুলিকে একসাথে আটকান । গেটওয়ে গড়ে তুলতে দ্রুততম উপায় মত একটি Docker ইমেজ এই এক তারপর ব্যবহার Docker-রচনা একই সময়ে সব পরিষেবা শুরু করার জন্য:

version: '3'

services:
    service1:
        build: service1
    service2:
        build: service2
    gateway:
        ports:
            - 80:80
        image: xmorse/apollo-federation-gateway
        environment: 
            - CACHE_MAX_AGE=5
            - "FORWARD_HEADERS=Authorization, X-Custom-Header" # default is Authorization, pass '' to reset
            - URL_0=http://service1
            - URL_1=http://service2

0

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

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

গ্রাফকিউএল বনাম রিস্টের এই তুলনায় আপনি দেখতে পাবেন যে গ্রাফকিউএল আরএসএফুল এপিআইগুলির মতো যথেষ্ট দক্ষ নয় তাই আমি ডেটা এপিআইয়ের জন্য গ্রাফকিউএল এর সাথে আরইএসটি প্রতিস্থাপনের পরামর্শ দেব না।


0

প্রশ্ন 1-এ, ইনটুট গ্র্যান্ডকিউএলএর শক্তিটিকে স্বীকৃতি দিয়েছে কয়েক বছর আগে যখন ওয়ান ইনটুট এপিআই বাস্তুতন্ত্রে যাওয়ার ঘোষণা দেয় ( https://www.slideshare.net/IntuitDeveloper/building-the-next-generation-of-quickbooks-app-integrations -উক্ত বই-কানেক্ট -2017 )। অন্তর্দৃষ্টি 1. পদ্ধতির সাথে যেতে বেছে নিয়েছে আপনি যে অসুবিধাটি উল্লেখ করেছেন তা বিকাশকারীদের ব্রেকিং স্কিমা পরিবর্তনগুলি প্রবর্তন থেকে বিরত রাখে যা ক্লায়েন্টের অ্যাপ্লিকেশনগুলি সম্ভাব্যভাবে ব্যাহত করতে পারে।

গ্রাফকিউএল বিভিন্ন উপায়ে বিকাশকারীদের উত্পাদনশীলতা উন্নত করতে সহায়তা করেছে।

  1. কোনও ডোমেনের জন্য একটি নতুন মাইক্রোসার্ভিস ডিজাইন করার সময় ইঞ্জিনিয়াররা (ব্যাকএন্ড / ফ্রন্টএন্ড / স্টেকহোল্ডার) ডোমেন সত্তার জন্য কোনও স্কিমায় সম্মত হন। একবার স্কিমা অনুমোদিত হয়ে গেলে এটি মাস্টার ডোমেন স্কিমা (সর্বজনীন) এর সাথে একীভূত হয়ে গেটওয়েতে স্থাপন করা হয় ront ফ্রন্ট এন্ড ইঞ্জিনিয়াররা এই স্কিমা দিয়ে ক্লায়েন্ট অ্যাপ্লিকেশনগুলির কোডিং শুরু করতে পারে যখন ব্যাকএন্ড ইঞ্জিনিয়াররা কার্যকারিতা কার্যকর করে। একটি সর্বজনীন স্কিমা থাকার অর্থ অনর্থক কার্যকারিতা সহ কোনও দুটি মাইক্রোসার্কিস নেই।
  2. গ্রাফকিউএল ক্লায়েন্ট অ্যাপ্লিকেশনগুলি সহজ এবং দ্রুততর হতে সহায়তা করেছে। একাধিক মাইক্রোসার্চেসে ডেটা / আপডেট ডেটা পুনরুদ্ধার করতে চান? সমস্ত ক্লায়েন্ট অ্যাপ্লিকেশনগুলি হ'ল ফায়ার ওয়ান গ্রাফকিউএল অনুরোধ এবং এপিআই গেটওয়ে অ্যাবস্ট্রাকশন স্তরটি একাধিক উত্স (মাইক্রোসার্চেসিস) থেকে ডেটা আনতে এবং জমায়েত করতে যত্ন নেবে। অ্যাপোলো ( https://www.apollographql.com/ ) এর মতো ওপেন সোর্স ফ্রেমওয়ার্কগুলি গ্রাফকিউএল গ্রহণের গতি ত্বরান্বিত করেছে।

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

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

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


0

আমি গ্রাফকিউএল এবং মাইক্রোসার্ভেসিস নিয়ে কাজ করছি

আমার অভিজ্ঞতার ভিত্তিতে যা আমার জন্য কাজ করে তা কার্যকারিতা / ব্যবহারের উপর নির্ভর করে উভয় পদ্ধতির সংমিশ্রণ, আমার কাছে পদ্ধতির 1 হিসাবে কোনও একক গেটওয়ে কখনও থাকবে না ... তবে প্রতিটি মাইক্রোসারওয়াইসের জন্য গ্রাফিকএল 2 এপ্রোচ হিসাবে রয়েছে।

উদাহরণস্বরূপ এনায়েতের উত্তরের চিত্রের ভিত্তিতে, আমি এই ক্ষেত্রে যা করব তা হল 3 গ্রাফ গেটওয়ে (চিত্র হিসাবে 5 নয়)

এখানে চিত্র বর্ণনা লিখুন

  • অ্যাপ্লিকেশন (পণ্য, ঝুড়ি, শিপিং, ইনভেন্টরি, প্রয়োজন / অন্যান্য পরিষেবার সাথে সংযুক্ত)

  • পারিশ্রমিক

  • ব্যবহারকারী

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

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

এই উপায়টি আরও সহজ ...

  • বিভিন্ন গেটওয়ে নোডগুলি ব্যবহারের উপর নির্ভর করে স্কেল / শাটডাউন করুন। (উদাহরণস্বরূপ লোকেরা সর্বদা তাদের প্রোফাইল সম্পাদনা বা অর্থ প্রদান নাও করতে পারে ... তবে পণ্য অনুসন্ধানগুলি আরও ঘন ঘন ব্যবহৃত হতে পারে)।

  • গেটওয়েগুলি পরিপক্ক হয়ে উঠলে, বৃদ্ধি পায়, ব্যবহারটি পরিচিত হয় বা আপনি যে ডোমেনটি চিহ্নিত করতে পারেন তার কোনও গেটওয়ের মালিকানা পেতে পারে এমন স্কিমার অংশটি (... আমার সাথে ঘটল একটি বিশাল স্কিমা যা গিট সংগ্রহস্থলগুলির সাথে যোগাযোগ করে) , আমি গেটওয়েটি পৃথক করেছিলাম যা একটি সংগ্রহস্থলের সাথে ইন্টারেক্ট করে এবং আমি দেখেছি যে কেবল ইনপুট / লিঙ্কযুক্ত তথ্য প্রয়োজন ... ফোল্ডারের পথ এবং প্রত্যাশিত শাখা)

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

হালনাগাদ:

আমার কাছে একটি কুবারনেটস ক্লাস্টার অনলাইন রয়েছে যা গ্রাফকিউএল, সমস্ত ওপেনসোর্স ব্যবহার করে সমস্ত ব্যাকেন্ডের সাথে আমি এখানে বর্ণিত একই পদ্ধতির ব্যবহার করছি, এখানে মূল সংগ্রহস্থলটি রয়েছে: https://github.com/vicjicaman/microservice-rem

এটি আমার উত্তরের একটি আপডেট কারণ আমি মনে করি যে উত্তর / পদ্ধতির ব্যাক আপ কোডটি চলছে যা চলছে এবং পরামর্শ / পর্যালোচনা করা যেতে পারে তবেই এটি ভাল is


-3

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


এমনকি "যথাযথ সংজ্ঞা" না থাকার পরেও এটি একটি ভাল বোঝা ধারণা এবং প্রশ্নের প্রসঙ্গে স্পষ্টভাবে নির্ধারিত। একপাশে, আপনার উত্তরটি প্রশ্নটিকে মোটেই সমাধান করে না।
রায় প্রিন্স

-7

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


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