অ্যাপাচি অ্যাকটিভএমকিউ (Apache ActiveMQ) একটি শক্তিশালী মেসেজ ব্রোকার সিস্টেম, যা মেসেজ সঞ্চালনের জন্য বিভিন্ন কনফিগারেশন এবং ফাইল ব্যবস্থাপনা সমর্থন করে। Message Store কনফিগারেশন এবং File Management সিস্টেমের কার্যকারিতা এবং ডেটা নিরাপত্তা নিশ্চিত করতে গুরুত্বপূর্ণ ভূমিকা পালন করে। এটি মেসেজগুলিকে স্টোর এবং ম্যানেজ করার পদ্ধতি নিয়ন্ত্রণ করে, বিশেষ করে যখন সিস্টেমটি ডিস্ট্রিবিউটেড থাকে বা লোড বেশি থাকে।
অ্যাপাচি অ্যাকটিভএমকিউ-এর Message Store কনফিগারেশন দ্বারা মেসেজ সঞ্চয় করার জন্য ব্যবহৃত ফাইল সিস্টেম বা ডাটাবেস নির্ধারণ করা হয়। এটি নিশ্চিত করে যে ব্রোকারের মধ্যে মেসেজ হারানো না যায় এবং মেসেজগুলি নিরাপদে সংরক্ষিত থাকে। অ্যাকটিভএমকিউ বিভিন্ন ধরনের স্টোরেজ সমর্থন করে, যেমন KahaDB, JDBC, LevelDB, ইত্যাদি।
KahaDB অ্যাকটিভএমকিউ-এর ডিফল্ট মেসেজ স্টোর এবং এটি একটি উচ্চ পারফরম্যান্স স্টোরেজ ব্যবস্থা হিসেবে ব্যবহৃত হয়। এটি একটি ফাইল-ভিত্তিক স্টোরেজ যা মেসেজগুলি একটি ডিস্কে সংরক্ষণ করে এবং এটি স্ট্রাকচারড ডেটা সঞ্চয় করতে সক্ষম।
kahadb
দ্বারা ব্যবহৃত স্টোরেজ সিস্টেমের ডিরেক্টরি ও ফাইলের অবস্থান কনফিগার করা হয়।<broker xmlns="http://activemq.apache.org/schema/core"
brokerName="localhost"
dataDirectory="${activemq.data}">
<!-- Configuring KahaDB as message store -->
<persistenceAdapter>
<kahaDB directory="${activemq.data}/kahadb"/>
</persistenceAdapter>
<transportConnectors>
<transportConnector uri="tcp://localhost:61616"/>
</transportConnectors>
</broker>
এই কনফিগারেশন কাহা ডাটাবেস ব্যবহারের জন্য মেসেজগুলো সংরক্ষণ করতে সক্ষম হয়, এবং এগুলো activemq.data/kahadb
ডিরেক্টরিতে সেভ হয়।
অ্যাকটিভএমকিউ একটি JDBC ভিত্তিক মেসেজ স্টোর সমর্থন করে, যা ডেটাবেসে মেসেজ সঞ্চয় করে। যখন KahaDB ব্যবহৃত না হয়, তখন একটি রিলেশনাল ডাটাবেস যেমন MySQL, PostgreSQL, বা Oracle ব্যবহার করে মেসেজ সঞ্চয় করা যেতে পারে।
<broker xmlns="http://activemq.apache.org/schema/core"
brokerName="localhost"
dataDirectory="${activemq.data}">
<!-- Configuring JDBC as message store -->
<persistenceAdapter>
<jdbcPersistenceAdapter dataSource="#myDataSource"/>
</persistenceAdapter>
<dataSources>
<bean id="myDataSource" class="org.apache.commons.dbcp2.BasicDataSource">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/activemq"/>
<property name="username" value="root"/>
<property name="password" value="password"/>
</bean>
</dataSources>
<transportConnectors>
<transportConnector uri="tcp://localhost:61616"/>
</transportConnectors>
</broker>
এখানে myDataSource
নামক ডেটাবেসের সংযোগ সেট করা হয়েছে, যেখানে মেসেজগুলি সঞ্চিত হবে।
LevelDB একটি কী-ভ্যালু ডাটাবেস সিস্টেম, যা অ্যাকটিভএমকিউ-তে মেসেজ স্টোর হিসেবে ব্যবহৃত হতে পারে। এটি ডিস্ক-ভিত্তিক এবং উচ্চ পারফরম্যান্স সরবরাহ করে।
<broker xmlns="http://activemq.apache.org/schema/core"
brokerName="localhost"
dataDirectory="${activemq.data}">
<!-- Configuring LevelDB as message store -->
<persistenceAdapter>
<levelDB directory="${activemq.data}/leveldb"/>
</persistenceAdapter>
<transportConnectors>
<transportConnector uri="tcp://localhost:61616"/>
</transportConnectors>
</broker>
এখানে LevelDB সিস্টেমে মেসেজ স্টোর করা হচ্ছে এবং activemq.data/leveldb
ফোল্ডারে সেভ হবে।
অ্যাকটিভএমকিউ-এ মেসেজ ফাইল ব্যবস্থাপনা গুরুত্বপূর্ণ ভূমিকা পালন করে, কারণ এটি ডেটা সংরক্ষণ এবং সিস্টেম পারফরম্যান্সে প্রভাব ফেলে। বিভিন্ন ফাইল ম্যানেজমেন্ট কনফিগারেশন ব্যবহারের মাধ্যমে মেসেজ সঞ্চালন এবং সংরক্ষণ প্রক্রিয়া নিয়ন্ত্রণ করা যায়।
KahaDB
বা JDBC
স্টোরেজ ব্যবহারের সময় সক্রিয় থাকে।<destinationPolicy>
<policyMap>
<policyEntries>
<policyEntry queue=">" persistent="true"/>
</policyEntries>
</policyMap>
</destinationPolicy>
অ্যাকটিভএমকিউ মেসেজ ফাইল ব্যবস্থাপনার জন্য মেসেজের আকার নির্ধারণ করতে পারে, যেমন অতিরিক্ত বড় মেসেজ কিউতে রাখার আগে চেক করা। কিউ এবং টপিকের স্টোরেজ আকার সীমিত করতে, আপনি memoryLimit
এবং maxMessageSize
প্রপার্টি সেট করতে পারেন।
<destinationPolicy>
<policyMap>
<policyEntries>
<policyEntry queue=">" memoryLimit="104857600" maxMessageSize="2097152"/>
</policyEntries>
</policyMap>
</destinationPolicy>
এখানে:
memoryLimit
দ্বারা কিউটির সর্বোচ্চ মেমরি সীমা নির্ধারণ করা হয়।maxMessageSize
দ্বারা মেসেজের সর্বোচ্চ আকার নির্ধারণ করা হয়।এই কনফিগারেশন এবং ফাইল ব্যবস্থাপনা অ্যাপাচি অ্যাকটিভএমকিউ-এর কার্যক্ষমতা এবং নির্ভরযোগ্যতা নিশ্চিত করতে সহায়তা করে।
common.read_more