Enterprise متقدم

حبّة المراسلة المدفوعة مقابل المراسلة التفاعلية

استبدل حبّات JMS المدفوعة بالرسائل بـ 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 وتهيئة التنشيط.

🔌

مستقل عن الوسيط

بدّل موصلات Kafka أو AMQP أو JMS عبر التهيئة دون تغيير كود التطبيق.

☁️

ملائم للسحابة الأصلية

الضغط الخلفي للتدفقات التفاعلية وبيئة التشغيل الخفيفة يجعله مثالياً للنشر في حاويات.

الأسلوب القديم
Message-Driven Bean
الأسلوب الحديث
Reactive Messaging
منذ JDK
11
الصعوبة
متقدم
حبّة المراسلة المدفوعة مقابل المراسلة التفاعلية
متاح

متاح منذ MicroProfile 4.0 / SmallRye Reactive Messaging

تتطلب حبّات Message-Driven تنفيذ MessageListener وتهيئة خصائص التنشيط وإلغاء تسلسل رسائل JMS يدوياً. تستخدم MicroProfile Reactive Messaging تعليقاً توضيحياً بسيطاً @Incoming على دالة تستقبل كائنات مكتوبة مباشرةً. تُخرَج تهيئة القناة مما يجعل الكود مستقلاً عن وسيط الرسائل وأسهل بكثير في الاختبار.

مشاركة 𝕏 🦋 in