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.
@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());
}
}
@ApplicationScoped
public class OrderProcessor {
@Incoming("orders")
public void process(Order order) {
// automatically deserialized from
// the "orders" channel
fulfillOrder(order);
}
}
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.
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.