সতর্কতা সিস্টেম আর্কিটেকচার


10

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

আমি মনে করি যে আমি বেসিক আর্কিটেকচারটি এর মতো দেখতে চাই:এখানে চিত্র বর্ণনা লিখুন

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

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

আমার প্রশ্নটি হ'ল-

আমার কি বার্তা হ্যান্ডলারটি নিয়ে বিরক্ত করা উচিত - বা এটি কেবল ডাউন স্ট্রিম অ্যাপ্লিকেশনগুলির পাশাপাশি অন্য দুটি উপাদান (ম্যানেজমেন্ট কনসোল এবং সতর্কতা ব্যবস্থাপক) -এর সরাসরি ডাটাবেস অ্যাক্সেসের অনুমতি দেওয়ার জন্য সরলতা যুক্ত করবে?

এইভাবে, তারা যা খুশি সতর্কতা সন্নিবেশ করতে পারে - যতক্ষণ না ডিবি টেবিল / সারণিতে INSERT বৈধ থাকে।

আমি বাণিজ্যে কোনও সফ্টওয়্যার ডিজাইনার নই তাই আমাকে ক্ষমা করুন - আমি কেবল আমার ফ্রি সময়ে একটি প্রকল্প চাই।

উত্তর:


4

আপনি কি এএমকিউপি (অ্যাডভান্সড মেসেজ কুইউনিং প্রোটোকল: https://www.rabbitmq.com/protocol.html ) দেখেছেন ?

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

আমি সত্যিই এএমকিউপি ব্যবহার করতে পছন্দ করার একটি কারণ হ'ল আপনি এখন যেমন কিছু হোম-বেকড সমাধান দিয়ে চলেছেন ঠিক তেমনই আপনি শুরু করেছিলেন তবে সময়ের পরে বুঝতে পারেন যে ধরণের বার্তা, কার কাছে যেতে হবে ইত্যাদি উপর নির্ভর করে আপনাকে কিছুটা আলাদাভাবে পরিচালনা করতে হবে etc. , সুতরাং আপনি মূলত আপনার নিজের AMQP বাস্তবায়নটি শেষ করুন।

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

এটি যে পরিস্থিতিগুলি পরিচালনা করতে পারে তার একটি প্রাথমিক অবলম্বন এখানে দেখুন (এটি রবিট এমকিউয়ের সাথে সুনির্দিষ্ট নয়: এটি একটি এএমকিউ জিনিস, তবে রাব্বিটএমকিউ এটির ভাল ব্যাখ্যা করার জন্য ঘটেছে) - https://www.rabbitmq.com/getstarted.html


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

2
আমি যখন প্রথম র‌্যাবিট এমকিউতে প্রবেশ করি তখন আমি কিছুটা ভয় পেয়েছিলাম, তবে এক সপ্তাহান্তে পড়াশোনা করার পরে এটি বাহের মতো হয়েছিল , এটি আসলেই সত্যই, খুব সুন্দর, এবং এখন আমি যা দেখছি তা বুঝতে পেরেছি, এটি আসলেই সহজ
জ্ল্যাচ

আমি এএমকিউপি-র ধারণাটি পছন্দ করি তবে রাব্বিট এমকিউ যেভাবে প্রতিটি ভাষা বাছাইয়ের জন্য ক্লায়েন্টের এপিআই পরিচালনা করে তা একটি ভাষা-অজোনস্টিক প্রোটোকল ব্যবহারের পুরো উদ্দেশ্যকে পরাস্ত করে। আমার যদি এমন কোনও ক্লায়েন্ট থাকে যা এমন কোনও ভাষা চালাচ্ছে যার পক্ষে সমর্থিত এপিআই লেখা নেই? এর মধ্যে কয়েকটি বৈশিষ্ট্য সত্যিই দুর্দান্ত ... তবে ওভারকিল যখন আমার কেবল তখনই দরকার হয় বিন্দু A থেকে পয়েন্ট বিতে 1 বার্তা পাওয়া যায়, এর মধ্যে কিছুই নেই।
ক্রিস্টোফার

আমি এটির উপরে একটি দ্রুত বিশ্রামের এপিআই চড়ানোর চিন্তা করছিলাম যা আপনার অজ্ঞাত উদ্বেগকে আচ্ছন্ন করবে, তবে একমত হয়েছিলেন যে এএমকিউপি যে বৈশিষ্ট্যগুলি সরবরাহ করে আপনার যদি কখনও তার প্রয়োজন না হয় তবে এটি অতিরিক্ত ক্ষতিকারক হবে (আমি যদি আপনি কোন বন্য চালাতাম তবে ক্ষমা চাইব) এর উপর হংস তাড়া ...)
ঝাঁকুন

হ্যাঁ - এটি কভার করার জন্য একটি দ্রুত REST এপিআই কাজ করবে .. তবে তারপরে আমি কেবল নিজের নিজস্ব একটি রেস্ট্রিক এপিআই তৈরি করতে পারি। এবং কোন ক্ষমা চাইবেন না - এটি একটি দুর্দান্ত প্রযুক্তি এবং শিক্ষার অগ্রগতির জন্য প্রয়োজনীয় :) যদি এখন না হয় - তবে আমি নিশ্চিত যে ভবিষ্যতে এটি কার্যকর হবে।
ক্রিস্টোফার

3

খুব ভাল ফ্রেম প্রশ্ন!

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

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

শুভকামনা!


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

আমি এটা জানতাম! :) আপনি সত্যিকারের কিছু থেকে বেরিয়ে আসার জন্য যা খুঁজছেন তা বোঝা সবচেয়ে গুরুত্বপূর্ণ বিষয়। চিয়ার্স!
জোনা বেনটন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.