What are microservices?
Microservices - also known as the microservice architecture - is an architectural style that structures an application as a collection of services that are
- Highly maintainable and testable
- Loosely coupled
- Independently deployable
- Organized around business capabilities
- Owned by a small team
Microservices break down the application into smaller, independent services. Each service (e.g., Catalog API, Basket API) is dedicated to a specific function and can be scaled or updated independently. It connects with databases like MongoDB, Redis, and MySQL, and uses messaging tools like RabbitMQ to stay efficient.
Installing on Windows : https://www.rabbitmq.com/install-windows.html
C:\Program Files\RabbitMQ Server\rabbitmq_server-3.12.11\sbin>rabbitmq-plugins.bat listC:\Program Files\RabbitMQ Server\rabbitmq_server-3.12.11\sbin>rabbitmq-plugins.bat enable rabbitmq_management
If you want to check the message queue paths directly from Windows without using code, you can also:
1. Open **Computer Management** (right-click on "This PC" or "My Computer" and select "Manage").
2. Navigate to **Services and Applications** > **Message Queuing** to see the list of available queues.
✅ কিভাবে কাজ করে (Bangla)
RabbitMQ-এর কাজের ধাপগুলো সহজভাবে নিচে দেওয়া হলো:
-
Producer
- Producer হলো সেই অ্যাপ্লিকেশন যা বার্তা (message) তৈরি করে এবং RabbitMQ-তে পাঠায়।
- Producer বার্তাটি একটি Queue-তে পাঠায়।
-
Queue
- Queue হলো একটি বাফার যেখানে বার্তাগুলো জমা থাকে যতক্ষণ না Consumer সেগুলো গ্রহণ করে।
- এটি বার্তাগুলোকে অস্থায়ীভাবে ধরে রাখে।
-
Consumer
- Consumer হলো সেই অ্যাপ্লিকেশন যা Queue থেকে বার্তা গ্রহণ করে এবং প্রসেস করে।
- Consumer বার্তা পাওয়ার পর সেটি প্রিন্ট করতে পারে, ডাটাবেসে রাখতে পারে, বা অন্য কোনো কাজ করতে পারে।
-
Connection এবং Channel
- Producer এবং Consumer RabbitMQ সার্ভারের সাথে Connection তৈরি করে।
- Connection-এর ভিতরে Channel থাকে, যা আসল কাজ করে (Queue declare, message publish, consume)।
-
Flow
- Producer → Queue → Consumer
- Producer বার্তা পাঠায় → Queue বার্তাটি ধরে রাখে → Consumer বার্তাটি পড়ে এবং প্রসেস করে।
RabbitMQ-এর মূল সুবিধা:
- Decoupling: Sender এবং Receiver একসাথে চলতে হবে না।
- Reliability: বার্তা হারিয়ে যায় না (acknowledgment এবং persistence সাপোর্ট করে)।
- Scalability: অনেক বেশি লোড হ্যান্ডেল করতে পারে।