পরিচিতি (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)

মন্তব্যসমূহ
একটি মন্তব্য পোস্ট করুন
আপনার সমস্যাটি কমেন্ট করে আমাদের জানান :-d