বিভিন্ন ডেটা জুড়ে ডেটা জুড়ে অনুসন্ধান করুন micro


13

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

উত্তর:


21

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

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

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

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


আমি ইতিমধ্যে যদিও একটি পৃথক পরিষেবা তৈরি সম্পর্কে। কেবলমাত্র যে জিনিসটি আমাকে কিছুটা অস্বস্তি দেয় - কেবল অনুসন্ধানের জন্য আরও একটি ডাটাবেস তৈরি করা (এটিকে ইলাস্টিকের কাছে খাওয়ানো অন্য বিকল্প হতে পারে তবে আমাদের কিছু অবকাঠামো বাধা রয়েছে)
বুদ্ধিমান

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