Enterprise উন্নত

সহজ ইভেন্ট প্রসেসিংয়ের জন্য JMS Message-Driven Beans-এর পরিবর্তে MicroProfile Reactive Messaging ব্যবহার করুন।

✕ Java EE
@MessageDriven(activationConfig = {
    @ActivationConfigProperty(
        propertyName = "destinationType",
        propertyValue = "jakarta.jms.Queue"),
    @ActivationConfigProperty(
        propertyName = "destination",
        propertyValue = "java:/jms/OrderQueue")
})
public class OrderMDB implements MessageListener {
    @Override
    public void onMessage(Message message) {
        TextMessage txt = (TextMessage) message;
        processOrder(txt.getText());
    }
}
✓ MicroProfile 4+
@ApplicationScoped
public class OrderProcessor {
    @Incoming("orders")
    public void process(Order order) {
        // automatically deserialized from
        // the "orders" channel
        fulfillOrder(order);
    }
}
এই কোডে সমস্যা দেখছেন? আমাদের জানান।
🪶

ন্যূনতম কোড

একটি সিঙ্গেল @Incoming মেথড MDB ক্লাস, MessageListener ইন্টারফেস এবং অ্যাক্টিভেশন কনফিগকে প্রতিস্থাপন করে।

🔌

ব্রোকার-অ্যাগনস্টিক (Broker-agnostic)

অ্যাপ্লিকেশন কোড পরিবর্তন না করেই কনফিগারেশনের মাধ্যমে Kafka, AMQP, বা JMS কানেক্টর অদলবদল করা যায়।

☁️

ক্লাউড-নেটিভ ফিট

রিঅ্যাক্টিভ স্ট্রিম ব্যাকপ্রেশার এবং লাইটওয়েট রানটাইম এটিকে কন্টেইনারাইজড ডিপ্লয়মেন্টের জন্য আদর্শ করে তোলে।

পুরনো পদ্ধতি
Message-Driven Bean
আধুনিক পদ্ধতি
রিঅ্যাক্টিভ মেসেজিং (Reactive Messaging)
JDK থেকে
11
কঠিনতা
উন্নত
Message-Driven Bean বনাম রিঅ্যাক্টিভ মেসেজিং (Reactive Messaging)
উপলব্ধ

মাইক্রোপ্রোফাইল 4.0 / SmallRye রিঅ্যাক্টিভ মেসেজিং থেকে উপলব্ধ

Message-Driven Beans-এর জন্য MessageListener ইমপ্লিমেন্ট করা, অ্যাক্টিভেশন প্রপার্টি কনফিগার করা এবং JMS মেসেজ ম্যানুয়ালি ডিসিরিয়ালাইজ (deserialize) করার প্রয়োজন হয়। MicroProfile Reactive Messaging একটি মেথডে একটি সহজ @Incoming অ্যানোটেশন ব্যবহার করে, যা সরাসরি টাইপড অবজেক্ট গ্রহণ করে। চ্যানেল কনফিগারেশন এক্সটার্নালাইজড হওয়ায় কোড ব্রোকার-অ্যাগনস্টিক (broker-agnostic) হয় এবং এটি পরীক্ষা করা অনেক সহজ।