Apache ActiveMQ এবং Spring Boot এর ইন্টিগ্রেশন খুবই সহজ এবং শক্তিশালী মেসেজিং সিস্টেম তৈরি করতে সহায়ক। Spring Boot অ্যাপ্লিকেশনগুলিতে Apache ActiveMQ এর সাহায্যে মেসেজ পাঠানো এবং গ্রহণ করার প্রক্রিয়া অত্যন্ত সহজ। এখানে আমরা দেখব কিভাবে Spring Boot এর সাথে Apache ActiveMQ ইন্টিগ্রেট করা যায়।
Spring Boot অ্যাপ্লিকেশনে Apache ActiveMQ ইন্টিগ্রেট করার জন্য আপনাকে কয়েকটি লাইব্রেরি প্রয়োজন হবে। Maven বা Gradle ব্যবহার করে এই ডিপেনডেন্সিগুলি আপনার প্রকল্পে যুক্ত করুন।
<dependencies>
<!-- Spring Boot Starter for ActiveMQ -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-artemis</artifactId> <!-- Artemis is built on top of ActiveMQ -->
</dependency>
<!-- Spring Boot Starter for JMS (Java Message Service) -->
<dependency>
<groupId>org.springframework.jms</groupId>
<artifactId>spring-jms</artifactId>
</dependency>
</dependencies>
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-artemis' // Artemis (ActiveMQ)
implementation 'org.springframework.jms:spring-jms'
}
Spring Boot অ্যাপ্লিকেশনকে Apache ActiveMQ এর সাথে সংযুক্ত করার জন্য কিছু কনফিগারেশন সেট করতে হবে। সাধারণত, আমরা application.properties
বা application.yml
ফাইলে এই কনফিগারেশনগুলি নির্ধারণ করি।
# ActiveMQ Broker Configuration
spring.activemq.broker-url=tcp://localhost:61616 # ActiveMQ Broker URL
spring.activemq.user=admin # ActiveMQ Username
spring.activemq.password=admin # ActiveMQ Password
spring.activemq.in-memory=false # Use persistence storage
spring.jms.pub-sub-domain=false # Set to true for Topic-based messaging (Pub/Sub)
spring:
activemq:
broker-url: tcp://localhost:61616
user: admin
password: admin
in-memory: false
pub-sub-domain: false # For Queue-based messaging
Spring Boot অ্যাপ্লিকেশন থেকে ActiveMQ তে মেসেজ পাঠানোর জন্য একটি MessageProducer বা JMS Producer তৈরি করতে হবে। Spring JmsTemplate
ব্যবহার করে খুব সহজে মেসেজ প্রেরণ করা যায়।
import org.springframework.jms.core.JmsTemplate;
import org.springframework.stereotype.Service;
import javax.jms.Queue;
@Service
public class ActiveMQProducer {
private final JmsTemplate jmsTemplate;
private final Queue queue;
public ActiveMQProducer(JmsTemplate jmsTemplate, Queue queue) {
this.jmsTemplate = jmsTemplate;
this.queue = queue;
}
public void sendMessage(String message) {
// Send message to ActiveMQ Queue
jmsTemplate.convertAndSend(queue, message);
}
}
ActiveMQ থেকে মেসেজ গ্রহণ করতে @JmsListener
অ্যানোটেশন ব্যবহার করা হয়। এটি Spring JMS (Java Message Service) ইন্টিগ্রেশন থেকে আসে এবং মেসেজ প্রাপ্তির জন্য খুব সহজ এবং কার্যকরী একটি উপায়।
import org.springframework.jms.annotation.JmsListener;
import org.springframework.stereotype.Component;
@Component
public class ActiveMQConsumer {
@JmsListener(destination = "myQueue")
public void receiveMessage(String message) {
System.out.println("Received message: " + message);
}
}
এখানে, @JmsListener
অ্যানোটেশনটি myQueue
কিউ থেকে মেসেজ গ্রহণ করতে ব্যবহৃত হয়েছে। যখনই এই কিউতে নতুন মেসেজ আসবে, receiveMessage()
মেথডটি স্বয়ংক্রিয়ভাবে কল হবে।
Spring Boot অ্যাপ্লিকেশনকে একটি কিউ কনফিগার করতে হবে, যাতে মেসেজগুলি সঠিকভাবে প্রেরিত এবং গ্রহণ করা যায়। এটি @Bean
দিয়ে করা হয়।
import org.apache.activemq.ActiveMQQueue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.jms.Queue;
@Configuration
public class ActiveMQConfig {
@Bean
public Queue queue() {
return new ActiveMQQueue("myQueue");
}
}
এখানে, myQueue
নামক একটি কিউ তৈরি করা হয়েছে, যা মেসেজ পাঠানোর এবং গ্রহণ করার জন্য ব্যবহৃত হবে।
Spring Boot অ্যাপ্লিকেশনে একটি Controller তৈরি করা যেতে পারে, যা ব্যবহারকারীর ইনপুট বা কোনো HTTP রিকোয়েস্টের মাধ্যমে মেসেজ প্রেরণ করবে।
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ActiveMQController {
private final ActiveMQProducer activeMQProducer;
@Autowired
public ActiveMQController(ActiveMQProducer activeMQProducer) {
this.activeMQProducer = activeMQProducer;
}
@GetMapping("/send")
public String sendMessage() {
activeMQProducer.sendMessage("Hello, ActiveMQ!");
return "Message sent successfully!";
}
}
এখানে, /send
URL এ GET রিকোয়েস্ট করলে, sendMessage
মেথডটি কল হবে এবং ActiveMQProducer
মেসেজ পাঠাবে।
Apache ActiveMQ এর সঙ্গে Spring Boot ইন্টিগ্রেশন খুবই সহজ এবং দ্রুত সম্পন্ন করা যায়। JmsTemplate
এবং @JmsListener
ব্যবহার করে, আপনি Spring Boot অ্যাপ্লিকেশন থেকে মেসেজ প্রেরণ এবং গ্রহণ করতে পারবেন। এটি Queue-based messaging বা Topic-based messaging দুই ধরনের মেসেজ ডেলিভারি মডেলও সমর্থন করে। একে Spring Boot অ্যাপ্লিকেশনগুলোতে কার্যকরভাবে ইন্টিগ্রেট করার মাধ্যমে, আপনি একটি শক্তিশালী এবং স্কেলেবল মেসেজিং সিস্টেম তৈরি করতে পারেন।
Spring Boot এবং Apache ActiveMQ এর ইন্টিগ্রেশন ব্যবহার করে আপনি সহজেই মেসেজিং সিস্টেম তৈরি করতে পারেন, যেখানে Spring Boot অ্যাপ্লিকেশন থেকে ActiveMQ ব্রোকারের মাধ্যমে মেসেজ পাঠানো এবং গ্রহণ করা যাবে। অ্যাপাচি অ্যাকটিভএমকিউ হলো একটি ওপেন সোর্স মেসেজ ব্রোকার যা JMS (Java Message Service) প্রটোকল সাপোর্ট করে এবং Spring Boot এর সাথে সহজে ইন্টিগ্রেট করা যায়।
এই টিউটোরিয়ালে, আমরা দেখব কিভাবে Spring Boot অ্যাপ্লিকেশনে ActiveMQ সেটআপ করা যায় এবং মেসেজ প্রোডিউসার এবং কনজিউমার তৈরি করা যায়।
প্রথমে, আপনার Spring Boot অ্যাপ্লিকেশন তৈরির জন্য প্রয়োজনীয় ডিপেনডেন্সি এবং সেটআপ করতে হবে। আপনি Spring Initializr ব্যবহার করে একটি নতুন Spring Boot প্রজেক্ট তৈরি করতে পারেন। প্রজেক্টের জন্য ডিপেনডেন্সি নির্বাচন করুন:
Spring Boot অ্যাপ্লিকেশনটির pom.xml ফাইলে প্রয়োজনীয় ডিপেনডেন্সি যোগ করতে হবে। এটি আপনাকে ActiveMQ এবং Spring JMS ব্যবহার করতে সাহায্য করবে।
<dependencies>
<!-- Spring Boot Starter Web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Spring Boot Starter JMS -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
</dependency>
<!-- Spring Boot Starter for JMS (Apache ActiveMQ) -->
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
</dependencies>
আপনার Spring Boot অ্যাপ্লিকেশনকে ActiveMQ ব্রোকারের সাথে সংযোগ স্থাপন করার জন্য application.properties
ফাইলে কনফিগারেশন যোগ করতে হবে।
# ActiveMQ কনফিগারেশন
spring.activemq.broker-url=tcp://localhost:61616
spring.activemq.user=admin
spring.activemq.password=admin
spring.activemq.in-memory=true
এখানে:
Spring Boot অ্যাপ্লিকেশনে ActiveMQ ইন্টিগ্রেট করার জন্য, আপনি একটি কনফিগারেশন ক্লাস তৈরি করতে পারেন যা ActiveMQ এর সাথে Spring JMS-এর সংযোগ স্থাপন করবে।
import org.apache.activemq.ActiveMQConnectionFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jms.connection.CachingConnectionFactory;
import org.springframework.jms.core.JmsTemplate;
@Configuration
public class ActiveMQConfig {
@Bean
public ActiveMQConnectionFactory connectionFactory() {
return new ActiveMQConnectionFactory("tcp://localhost:61616");
}
@Bean
public CachingConnectionFactory cachingConnectionFactory(ActiveMQConnectionFactory connectionFactory) {
return new CachingConnectionFactory(connectionFactory);
}
@Bean
public JmsTemplate jmsTemplate(CachingConnectionFactory cachingConnectionFactory) {
return new JmsTemplate(cachingConnectionFactory);
}
}
এখানে:
ActiveMQ এর মাধ্যমে মেসেজ পাঠানোর জন্য একটি প্রোডিউসার ক্লাস তৈরি করতে হবে। এটি JmsTemplate
ব্যবহার করে মেসেজ ActiveMQ কিউতে পাঠাবে।
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.stereotype.Component;
@Component
public class MessageProducer {
@Autowired
private JmsTemplate jmsTemplate;
public void sendMessage(String message) {
jmsTemplate.convertAndSend("testQueue", message);
}
}
এখানে:
এখন, আপনাকে একটি কনজিউমার তৈরি করতে হবে, যা ActiveMQ কিউ থেকে মেসেজ গ্রহণ করবে।
import org.springframework.jms.annotation.JmsListener;
import org.springframework.stereotype.Component;
@Component
public class MessageConsumer {
@JmsListener(destination = "testQueue")
public void receiveMessage(String message) {
System.out.println("Received message: " + message);
}
}
এখানে:
Spring Boot অ্যাপ্লিকেশন রান করার জন্য একটি মূল ক্লাস তৈরি করুন।
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.beans.factory.annotation.Autowired;
@SpringBootApplication
public class ActiveMQApplication implements CommandLineRunner {
@Autowired
private MessageProducer messageProducer;
public static void main(String[] args) {
SpringApplication.run(ActiveMQApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
messageProducer.sendMessage("Hello, ActiveMQ from Spring Boot!");
}
}
এখানে:
এখন, আপনি Spring Boot অ্যাপ্লিকেশন চালাতে পারবেন। যদি আপনার অ্যাকটিভএমকিউ ব্রোকার রান না থাকে, তাহলে প্রথমে সেটি চালু করুন (যেমন: activemq start
কমান্ড দিয়ে)। এরপর Spring Boot অ্যাপ্লিকেশনটি চালু করুন:
mvn spring-boot:run
এটি মেসেজ প্রোডিউসারকে testQueue
কিউতে একটি মেসেজ পাঠাতে সক্ষম হবে। মেসেজ কনজিউমার তা গ্রহণ করবে এবং কনসোল এ দেখাবে।
Spring Boot এবং Apache ActiveMQ এর ইন্টিগ্রেশন একটি শক্তিশালী এবং স্কেলেবল মেসেজিং সিস্টেম তৈরি করতে সাহায্য করে। Spring Boot অ্যাপ্লিকেশন থেকে ActiveMQ ব্রোকারের মাধ্যমে মেসেজ প্রেরণ এবং গ্রহণ করা সহজে করা যায়। এখানে ব্যবহৃত JmsTemplate এবং @JmsListener অ্যাপাচি অ্যাকটিভএমকিউ-এর সাথে সংযুক্ত হয়ে কার্যকরীভাবে মেসেজ প্রোসেসিং করতে সক্ষম।
অ্যাপাচি অ্যাকটিভএমকিউ (Apache ActiveMQ) এবং স্প্রিং ফ্রেমওয়ার্ক (Spring Framework) একে অপরের সাথে মেসেজিং সিস্টেমের জন্য দুর্দান্তভাবে ইন্টিগ্রেট হতে পারে। স্প্রিং JMS (Java Message Service) API ব্যবহার করে আপনি অ্যাপাচি অ্যাকটিভএমকিউ-এ মেসেজ প্রোডিউসার এবং কনজিউমার তৈরি করতে পারেন। অ্যাকটিভএমকিউ ব্রোকার কনফিগারেশন সেটআপের মাধ্যমে আপনি আপনার মেসেজিং সিস্টেমের কার্যকারিতা এবং স্কেলেবিলিটি নির্ধারণ করতে পারেন।
এখানে, Spring JMS এবং ActiveMQ Broker Configuration এর সংমিশ্রণে অ্যাপাচি অ্যাকটিভএমকিউ-তে মেসেজ প্রোডিউসার ও কনজিউমার তৈরি এবং ব্রোকার কনফিগারেশন কিভাবে সেটআপ করা যায় তা ব্যাখ্যা করা হবে।
স্প্রিং জেএমএস (JMS) কনফিগারেশন ব্যবহারের মাধ্যমে অ্যাপ্লিকেশন থেকে অ্যাকটিভএমকিউ-এর সাথে যোগাযোগ স্থাপন করা যায়। আপনি স্প্রিং কনটেইনারের মধ্যে JmsTemplate
এবং ConnectionFactory
ব্যবহৃত কনফিগারেশন তৈরি করতে পারেন, যা মেসেজ প্রোডিউসার এবং কনজিউমারকে কাজ করতে সাহায্য করবে।
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- Connection Factory for ActiveMQ -->
<bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="tcp://localhost:61616"/>
</bean>
<!-- JMS Template for sending and receiving messages -->
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="connectionFactory"/>
<property name="defaultDestinationName" value="queue/testQueue"/>
</bean>
<!-- Message Listener for receiving messages -->
<bean id="messageListener" class="com.example.MessageListener"/>
<bean id="messageListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="connectionFactory"/>
<property name="destinationName" value="queue/testQueue"/>
<property name="messageListener" ref="messageListener"/>
</bean>
</beans>
এখানে:
ActiveMQConnectionFactory
: অ্যাকটিভএমকিউ ব্রোকারের জন্য কানেকশন ফ্যাক্টরি কনফিগার করা হয়েছে।JmsTemplate
: এটি মেসেজ প্রেরণ এবং গ্রহণের জন্য ব্যবহৃত হয়।DefaultMessageListenerContainer
: এটি স্প্রিং-এ অ্যাসিঙ্ক্রোনাস মেসেজ লিসেনিং পরিচালনা করতে ব্যবহৃত হয়।অ্যাকটিভএমকিউ ব্রোকার কনফিগারেশন সেটআপের মাধ্যমে আপনি transport connectors, message stores, এবং persistence adapters কনফিগার করতে পারেন। ব্রোকার কনফিগারেশন সাধারণত activemq.xml
ফাইলে করা হয়।
<broker xmlns="http://activemq.apache.org/schema/core"
brokerName="localhost"
dataDirectory="${activemq.data}">
<!-- Transport Connectors for ActiveMQ -->
<transportConnectors>
<transportConnector uri="tcp://localhost:61616"/>
</transportConnectors>
<!-- Persistence Adapter Configuration -->
<persistenceAdapter>
<kahaDB directory="${activemq.data}/kahadb"/>
</persistenceAdapter>
<!-- Destinations for Queues and Topics -->
<destinationPolicy>
<policyMap>
<policyEntries>
<policyEntry queue=">" memoryLimit="104857600"/>
<policyEntry topic=">" memoryLimit="104857600"/>
</policyEntries>
</policyMap>
</destinationPolicy>
</broker>
এখানে:
transportConnectors
: এটি ব্রোকারের বিভিন্ন কনেকশন পোর্ট কনফিগার করে, যেমন TCP পোর্ট (61616) ব্যবহার করা হয়েছে।persistenceAdapter
: এটি মেসেজ সংরক্ষণের জন্য কনফিগার করা হয়। এখানে KahaDB ব্যবহার করা হয়েছে, যা ডেটা সংরক্ষণ এবং মেসেজ পাসিংয়ের জন্য ব্যবহৃত হয়।destinationPolicy
: এখানে কিউ এবং টপিকের জন্য মেমরি সীমা নির্ধারণ করা হয়েছে।স্প্রিং জেএমএস ব্যবহার করে অ্যাপ্লিকেশন থেকে মেসেজ প্রোডিউসার এবং কনজিউমার তৈরি করা হয়।
import org.springframework.jms.core.JmsTemplate;
import javax.jms.TextMessage;
public class MessageProducer {
private JmsTemplate jmsTemplate;
public void sendMessage(String message) {
jmsTemplate.convertAndSend("queue/testQueue", message);
}
}
এখানে:
JmsTemplate.convertAndSend()
: মেসেজটি কিউ তে পাঠানোর জন্য ব্যবহৃত হয়।import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;
public class MessageListener implements MessageListener {
@Override
public void onMessage(Message message) {
try {
TextMessage textMessage = (TextMessage) message;
System.out.println("Received message: " + textMessage.getText());
} catch (Exception e) {
e.printStackTrace();
}
}
}
এখানে:
MessageListener
: এটি মেসেজ গ্রহণ করার জন্য ব্যবহৃত হয়। মেসেজটি গ্রহণের পর তা প্রক্রিয়া করা হয়।JmsTemplate
এবং MessageListener
ব্যবহার করে মেসেজ প্রেরণ এবং গ্রহণ করা হয়।transportConnectors
, persistenceAdapter
, এবং destinationPolicy
কনফিগার করা হয়। এটি মেসেজ ট্রান্সপোর্ট, ডেটা স্টোরেজ, এবং কিউ/টপিক পরিচালনা করে।এই কনফিগারেশন এবং প্রোগ্রামিং মডেল অ্যাকটিভএমকিউ এবং স্প্রিং ফ্রেমওয়ার্কের মাধ্যমে শক্তিশালী, স্কেলযোগ্য এবং রিলায়েবল মেসেজিং সিস্টেম তৈরি করতে সহায়তা করে।
অ্যাপাচি অ্যাকটিভএমকিউ (Apache ActiveMQ) এবং Spring Boot এর মাধ্যমে মেসেজ প্রেরণ (Sender) এবং গ্রহণ (Listener) একটি জনপ্রিয় প্যাটার্ন যা অ্যাসিঙ্ক্রোনাস মেসেজিং সিস্টেম তৈরি করতে ব্যবহৃত হয়। Spring Boot এবং অ্যাপাচি অ্যাকটিভএমকিউ-এর সমন্বয়ে আপনি সহজেই প্রোডিউসার (Sender) এবং কনজিউমার (Listener) তৈরি করতে পারেন।
এখানে আমরা দেখব কিভাবে Spring Boot এর সাহায্যে Message Sender এবং Message Listener তৈরি করা যায় অ্যাপাচি অ্যাকটিভএমকিউ ব্যবহার করে।
প্রথমে, pom.xml ফাইলে অ্যাপাচি অ্যাকটিভএমকিউ এবং স্প্রিং অ্যামকিউ (Spring ActiveMQ) ডিপেনডেন্সি যুক্ত করতে হবে:
<dependencies>
<!-- Spring Boot Starter Web for creating REST API -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Spring Boot Starter JMS for working with message brokers like ActiveMQ -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
</dependency>
<!-- Spring Boot Starter JMS for messaging -->
<dependency>
<groupId>org.springframework.jms</groupId>
<artifactId>spring-jms</artifactId>
</dependency>
<!-- Apache ActiveMQ dependency -->
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
</dependencies>
এই ডিপেনডেন্সিগুলি আপনার প্রজেক্টে অ্যাপাচি অ্যাকটিভএমকিউ এবং স্প্রিং বুটের মধ্যে ইন্টিগ্রেশন সরবরাহ করবে।
এখন আমরা একটি Message Sender তৈরি করব যা অ্যাপাচি অ্যাকটিভএমকিউ ব্রোকারে মেসেজ পাঠাবে।
ActiveMQ Configuration:
অ্যাপাচি অ্যাকটিভএমকিউ কনফিগারেশন Spring Boot অ্যাপ্লিকেশনে করার জন্য, application.properties
ফাইলে কনফিগারেশন যুক্ত করতে হবে।
spring.activemq.broker-url=tcp://localhost:61616
spring.activemq.user=admin
spring.activemq.password=admin
spring.activemq.in-memory=false
spring.activemq.packages.trust-all=true
এখানে:
Message Sender (Producer) কনফিগারেশন:
মেসেজ প্রেরণের জন্য আমরা একটি JmsTemplate
ব্যবহার করব।
package com.example.demo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.stereotype.Service;
@Service
public class MessageSender {
@Autowired
private JmsTemplate jmsTemplate;
private String destination = "testQueue"; // Queue Name
// Method to send message to ActiveMQ
public void sendMessage(String message) {
jmsTemplate.convertAndSend(destination, message);
System.out.println("Sent message: " + message);
}
}
এখানে:
REST Controller for Sending Messages:
মেসেজ পাঠানোর জন্য একটি REST API তৈরি করতে পারেন:
package com.example.demo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MessageController {
@Autowired
private MessageSender messageSender;
// Endpoint to send message
@GetMapping("/send")
public String sendMessage(@RequestParam String message) {
messageSender.sendMessage(message);
return "Message sent: " + message;
}
}
এই কোডের মাধ্যমে, আপনি http://localhost:8080/send?message=HelloActiveMQ
URL এ GET রিকোয়েস্ট পাঠিয়ে মেসেজ পাঠাতে পারবেন।
এখন আমরা একটি Message Listener তৈরি করব যা কিউ থেকে মেসেজ গ্রহণ করবে।
Message Listener কনফিগারেশন:
Spring Boot এর মাধ্যমে @JmsListener ব্যবহার করে আপনি মেসেজ গ্রহণ করতে পারেন। প্রথমে, @EnableJms অ্যানোটেশনটি ব্যবহার করে JmsListener সক্রিয় করতে হবে।
package com.example.demo;
import org.springframework.jms.annotation.JmsListener;
import org.springframework.stereotype.Service;
@Service
public class MessageListener {
// Listening to the 'testQueue' for incoming messages
@JmsListener(destination = "testQueue")
public void receiveMessage(String message) {
System.out.println("Received message: " + message);
}
}
এখানে:
testQueue
থেকে মেসেজ গ্রহণ করার জন্য কনজিউমার তৈরি করে। যখনই কিউতে একটি মেসেজ আসে, এই মেথডটি তা গ্রহণ করবে।JmsListenerContainerFactory কনফিগারেশন:
স্প্রিং বুটের মাধ্যমে JMS কনজিউমার এবং কনফিগারেশন পরিচালনা করার জন্য JmsListenerContainerFactory কনফিগার করা হয়:
package com.example.demo;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jms.annotation.EnableJms;
import org.springframework.jms.connection.JmsConnectionFactoryFactory;
import org.springframework.jms.listener.DefaultMessageListenerContainer;
import org.springframework.jms.listener.MessageListenerContainer;
import org.springframework.jms.listener.config.DefaultJmsListenerContainerFactory;
import org.springframework.jms.listener.config.JmsListenerContainerFactory;
import org.springframework.jms.support.destination.DestinationResolver;
import org.springframework.jms.support.converter.MessageConverter;
@Configuration
@EnableJms
public class JmsConfig {
@Bean
public JmsListenerContainerFactory<?> myFactory(
ActiveMQConnectionFactory connectionFactory,
MessageConverter messageConverter,
DestinationResolver destinationResolver) {
DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
factory.setConnectionFactory(connectionFactory);
factory.setMessageConverter(messageConverter);
factory.setDestinationResolver(destinationResolver);
return factory;
}
}
অ্যাপাচি অ্যাকটিভএমকিউ এবং Spring Boot ব্যবহার করে Message Sender (Producer) এবং Message Listener (Consumer) তৈরি করা একটি সাধারণ এবং কার্যকরী উপায় মেসেজিং সিস্টেম তৈরির জন্য। Spring Boot এর মাধ্যমে:
JmsTemplate
ব্যবহার করে মেসেজ পাঠানো হয়।@JmsListener
ব্যবহার করে মেসেজ গ্রহণ করা হয়।এইভাবে, আপনি স্প্রিং বুট অ্যাপ্লিকেশন তৈরি করে অ্যাপাচি অ্যাকটিভএমকিউ মেসেজ ব্রোকারের মাধ্যমে মেসেজ প্রেরণ এবং গ্রহণ সহজেই পরিচালনা করতে পারেন।
common.read_more