Enterprise İleri

Message-Driven Bean ile Reactive Messaging Karşılaştırması

Daha basit olay işleme için JMS Message-Driven Bean'leri MicroProfile Reactive Messaging ile değiştirin.

✕ 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);
    }
}
Bu kodda bir sorun mu gördünüz? Bize bildirin.
🪶

Minimal kod

Tek bir @Incoming yöntemi, MDB sınıfının, MessageListener arayüzünün ve etkinleştirme yapılandırmasının yerini alır.

🔌

Aracı-agnostik

Uygulama kodunu değiştirmeden yapılandırma yoluyla Kafka, AMQP veya JMS bağlayıcılarını değiştirin.

☁️

Buluta uyumlu

Reaktif akışlar geri baskısı ve hafif çalışma ortamı, konteynerleştirilmiş dağıtımlar için idealdir.

Eski Yaklaşım
Message-Driven Bean
Modern Yaklaşım
Reactive Messaging
JDK'dan itibaren
11
Zorluk
İleri
Message-Driven Bean ile Reactive Messaging Karşılaştırması
Mevcut

MicroProfile 4.0 / SmallRye Reactive Messaging'den itibaren kullanılabilir

Message-Driven Bean'ler, MessageListener'ı uygulamayı, etkinleştirme özelliklerini yapılandırmayı ve JMS iletilerini manuel olarak seri dışı bırakmayı gerektirir. MicroProfile Reactive Messaging, doğrudan yazılı nesneler alan bir yöntem üzerinde basit bir @Incoming açıklaması kullanır. Kanal yapılandırması dışarı çıkarılır; bu da kodu aracı-agnostik ve test edilmesi çok daha kolay hale getirir.

Paylaş 𝕏 🦋 in