সরাসরি প্রধান সামগ্রীতে চলে যান

মাইক্রোসার্ভিস আর্কিটেকচারে কোয়েশ্চেন সার্ভিস রান এবং টেস্টিং

পরিচিতি (Introduction)

এই কন্টেন্টে মূলত দেখানো হয়েছে কিভাবে একটি Microservice (বিশেষ করে 'Question Service') লোকাল মেশিনে রান করতে হয় এবং সেটি ঠিকঠাক কাজ করছে কি না তা Postman এবং Browser দিয়ে টেস্ট করতে হয়। মাইক্রোসার্ভিসের একটি বড় সুবিধা হলো স্কেলেবিলিটি (Scalability), অর্থাৎ প্রয়োজনে একই সার্ভিসের একাধিক কপি বা Instance চালানো। এখানে আমরা শিখব কিভাবে একই প্রজেক্টকে আলাদা আলাদা পোর্টে (যেমন: 8080 এবং 8081) একই সাথে রান করা যায়।


টপিক ১: সার্ভিস রান করা এবং বেসিক টেস্টিং (Running and Basic Testing)

ভিডিওর শুরুতে আগের তৈরি করা কোডগুলোকে রান করে দেখা হয়েছে। ডিফল্টভাবে স্প্রিং বুট (Spring Boot) প্রজেক্ট ৮০৮০ (8080) পোর্টে চলে।

রেফারেন্স: [01:14]

বিস্তারিত আলোচনা: যেকোনো ওয়েব সার্ভিস তৈরি করার পর সেটি চেক করতে হয় যে ডাটা ঠিকমতো আসছে কি না। ব্রাউজারে localhost:8080/question/allQuestions লিখলে যদি সব প্রশ্ন দেখা যায়, তবে বুঝতে হবে সার্ভিসটি সচল। তবে প্রফেশনাল টেস্টিংয়ের জন্য Postman ব্যবহার করা ভালো।

  • Instance (ইন্সট্যান্স): সহজ কথায়, একটি সফটওয়্যারের একটি রানিং কপি। যেমন আপনার ফোনে একই সাথে দুটি ফেসবুক অ্যাপ ক্লোন করে চালানো।

  • Port (পোর্ট): এটি একটি ভার্চুয়াল দরজার মতো। কম্পিউটারে অনেক সার্ভিস চলে, প্রতিটি সার্ভিসের আলাদা আলাদা দরজা বা নম্বর থাকে যাতে তারা একে অপরের সাথে মিশে না যায়।


টপিক ২: পোস্টম্যানের মাধ্যমে ডাটা চেক করা (Testing with Postman)

এখানে বিভিন্ন Endpoints (ইউআরএল) টেস্ট করা হয়েছে যেমন- সব প্রশ্ন দেখা, ক্যাটাগরি অনুযায়ী প্রশ্ন খোঁজা এবং কুইজের স্কোর ক্যালকুলেট করা।

রেফারেন্স: [02:06]

কোড স্নিপেট (JSON Data Example): নিচে একটি উদাহরণ দেওয়া হলো কিভাবে আমরা পোস্টম্যানের মাধ্যমে প্রশ্নর আইডি পাঠিয়ে ডাটা পেতে পারি:

JSON

// Post Request to: localhost:8080/question/getQuestions
[2, 4, 7, 9, 5] 

ব্যাখ্যা: এই কোডটি একটি এররে (Array), যেখানে আমরা নির্দিষ্ট কিছু প্রশ্নের আইডি পাঠাচ্ছি। সার্ভার এই আইডিগুলো দেখে আমাদের শুধু ওই প্রশ্নগুলোর ডিটেইলস ফেরত দেবে।

কুইজ স্কোর ক্যালকুলেট করার ডাটা ফরম্যাট:

JSON

// Post Request to: localhost:8080/question/getScore
[
  {"id": 19, "response": "3"},
  {"id": 20, "response": "4"}
] 

ব্যাখ্যা: এখানে আমরা প্রশ্নের আইডির সাথে ইউজার কোন অপশনটি সিলেক্ট করেছে (Response) সেটি পাঠাচ্ছি। ডাটাবেসের সঠিক উত্তরের সাথে মিলিয়ে এটি আমাদের ফাইনাল স্কোর রিটার্ন করবে।


টপিক ৩: মাল্টিপল ইন্সট্যান্স রান করা (Running Multiple Instances)

ভিডিওর সবচেয়ে গুরুত্বপূর্ণ অংশ হলো কিভাবে একই সাথে সার্ভিসের একাধিক কপি চালানো যায়।

রেফারেন্স: [08:13]

বিস্তারিত আলোচনা: ইন্টেলিজ আইডিই (IntelliJ IDEA) ব্যবহার করে এটি সহজে করা যায়। Edit Configuration এ গিয়ে আগের কনফিগারেশনটি কপি করে নতুন একটি নাম দিতে হবে। এরপর VM Options এ গিয়ে নতুন পোর্ট সেট করতে হবে।

সহজ ব্যাখ্যা: ধরা যাক, একটি দোকানে অনেক ভিড়। দোকানদার তখন পাশে আরেকটি কাউন্টার খুলে দিল। মাইক্রোসার্ভিসেও যদি একটি পোর্টে (8080) অনেক চাপ পড়ে, আমরা অন্য একটি পোর্টে (8081) একই সার্ভিস চালু করে চাপ কমাতে পারি।

VM Option এ পোর্ট সেট করার নিয়ম: -Dserver.port=8081

এই কমান্ডটি দিলে সিস্টেম বুঝতে পারে যে এই কপিটি ৮০৮১ পোর্টে চলবে। [09:19]


বিশ্লেষণ এবং আমার মতামত (Analysis & Perception)

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

বাস্তবতা ও সম্ভাবনা: বাস্তব কর্মক্ষেত্রে (Production environment) আমরা এভাবে ম্যানুয়ালি পোর্ট চেঞ্জ করি না। সেখানে Docker এবং Kubernetes ব্যবহার করা হয় যা অটোমেটিক এই ইন্সট্যান্সগুলো ম্যানেজ করে। এছাড়া অনেকগুলো ইন্সট্যান্সের মধ্যে কোনটিতে রিকোয়েস্ট যাবে তা ঠিক করার জন্য Load Balancer ব্যবহার করা হয়।

পরামর্শ: ১. Postman ব্যবহার শিখুন: ডেভেলপার হিসেবে এপিআই টেস্ট করার জন্য পোস্টম্যানের ওপর ভালো দখল থাকা জরুরি। ২. Database চেক করুন: ভিডিওতে ডাটা আসছে ডাটাবেস থেকে। তাই সার্ভিস রান করার আগে আপনার ডাটাবেস (যেমন PostgreSQL বা MySQL) কানেক্টেড আছে কি না তা নিশ্চিত করুন। ৩. পরবর্তী ধাপ: এরপরের ধাপে 'Quiz Service' তৈরি করা হবে, যা এই 'Question Service' এর সাথে যোগাযোগ করবে। এটি শেখার জন্য Feign Client বা RestTemplate সম্পর্কে আগে একটু ধারণা নিতে পারেন।

এই টিউটোরিয়ালটি বিগিনারদের জন্য চমৎকার কারণ এটি জটিল কনসেপ্টকে খুব সহজভাবে লোকাল এনভায়রনমেন্টে করে দেখিয়েছে। [10:45]

[

Running the Question Service | Microservice

Telusko · 26K views

](http://www.youtube.com/watch?v=hTtsqxLSGj0)

মন্তব্যসমূহ

এই ব্লগটি থেকে জনপ্রিয় পোস্টগুলি

সিজ্জিন (Sijjin) vs ইল্লিয়িন (Illiyin) পার্থক্য Difference

Sijjin (سِجِّين) এবং Illiyin (عِلِّيِّين) —এ দুটি শব্দ কুরআনে এসেছে এবং দুটোই মানুষের আমলনামা সংরক্ষণ সম্পর্কিত স্থানকে নির্দেশ করে। ১. সিজ্জিন (Sijjin) সিজ্জিন হলো পাপীদের (কাফের, মুনাফিক ও দুরাচারীদের) আমলনামা সংরক্ষণের স্থান। এটি সাত তলদেশের নীচে এক কারাগার বা অন্ধকার জগতে অবস্থিত বলে উল্লেখ রয়েছে। সূরা আল-মুতাফফিফীন (৮৩:৭-৯) তে বলা হয়েছে: "كَلَّا إِنَّ كِتَابَ الْفُجَّارِ لَفِي سِجِّينٍ ۝ وَمَا أَدْرَاكَ مَا سِجِّينٌ ۝ كِتَابٌ مَرْقُومٌ" অর্থ: "না, পাপীদের আমলনামা সিজ্জিনে সংরক্ষিত। তুমি কি জানো, সিজ্জিন কী? এটি এক লিখিত দলিল।" সিজ্জিনকে একটি কারাগার, সংকীর্ণ স্থান, বা নিচের স্তরে অবস্থিত এক অন্ধকার দুনিয়া হিসেবে ব্যাখ্যা করা হয়। ২. ইল্লিয়িন (Illiyin) ইল্লিয়িন হলো সৎকর্মশীলদের (মুমিন ও নেককারদের) আমলনামা সংরক্ষণের স্থান । এটি সপ্তম আসমানের ওপরে সংরক্ষিত এক সম্মানিত স্থান। সূরা আল-মুতাফফিফীন (৮৩:১৮-২১) তে বলা হয়েছে: "كَلَّا إِنَّ كِتَابَ الْأَبْرَارِ لَفِي عِلِّيِّينَ ۝ وَمَا أَدْرَاكَ مَا عِلِّيُّونَ ۝ كِتَابٌ مَرْقُومٌ ۝ يَش...

তারাবিহ সমগ্র - প্রথম আলো

রামাদান ২০২৪ উপলক্ষে প্রথম আলোর নিয়মিত আয়োজন - খতমে তারাবিহ'র সূরা গুলো নিয়ে সংক্ষিপ্ত আলোচনা'র লিংক  নিচে দেওয়া হলো।  লিংকে ক্লিক করলেই আপনাকে আলোচনা তে নিয়ে যাবে। তারাবিহ: ১ | একটি খুন ও গাভি নিয়ে বনি ইসরাইলের বাড়াবাড়ি তারাবিহ: ২ | নারীর মর্যাদা ও অধিকার এবং অলৌকিক তিন ঘটনা তারাবিহ: ৩ | যে ১৪ নারীকে বিয়ে করা হারাম তারাবিতে: ১২ | মহানবী (সা.)–এর আকাশভ্রমণ এবং আসহাবে কাহাফের কাহিনি

রেডমি নোট ৯ এর বিস্তারিত | Redmi Note 9 in Bangla

৩০ এপ্রিল, ২০২০ এ শাওমির ঘোষনা আসে এই ফোনটি নিয়ে। কিন্তু ফোনটি মার্কেটে আসে মে মাসের শেষের দিকে৷ করোনার কারনে ফোনটি বাংলাদেশে আসতে আরো সময় নেয়। বর্তমানে বাংলাদেশে আন অফিশিয়াল ভাবে ফোনটি পাওয়া যাচ্ছে৷ বাংলাদেশে অফিশিয়াল ভাবে এখনো ফোনটি আসার তথ্য নেয়৷ চলুন ফোনটি নিয়ে বিস্তারিত আলোচনা করা যাক। শাওমি নোট সিরিজের ফোন বের করে এদের রেডমি নামে সাব ব্যান্ড৷ এদের কাজ হল এই নোট সিরিজ নিয়ে কাজ করা৷ প্রতিবছর নোট সিরিজের ১/২ টা ফোন বাজারে আসে। সাথে সেই ফোন গুলার বিভিন্ন ভার্সন (যেমন - র‍্যাম ও রমের ভিত্তিতে) বাজারে আসে। এই বছরও তারা রেডমি সিরিজের নোট ৯ বাজারে আনে। এই বছর হয়তো এই সিরিজের আরো ফোন বাজারে আসবে। ডিস্পলেঃ ফোনটির ডিসপ্লে সাইজ ৬.৫৩ ইঞ্চি। এতে আইপিএস এলসিডি ডিসপ্লে ব্যবহার করা হয়েছে। এই ফোনের ডিসপ্লে প্রটেকশন হিসেবে আছে গরিলা গ্লাস ফাইভ। স্ক্রিন আর ফোনের বডির অনুপাত প্রায় ৮৩.৫%। এই ফোনের ডিসপ্লে ফুলএইচডি মানে ১০৮০পি। এই ডিস্পলের দৈর্ঘ্য ১৯.৫ একক এবং প্রস্থ হল ৯ একক। এত বড় ফোনের কারনে এই ফোনের পিপি আই ডেনসিটি ৩৯৫। যা একটু কম। প্লাটফর্মঃ এই ফোনের অপারেটিং সিস্টেম এন্ড্রয়েড ১০ এবং এর...