1

RabbitMQとのバネ・メッセージング(バネ・インテグレーション+ amqp)に関する質問があります。私はマイクロサービスアーキテクチャに基づいたアプリケーションを持っています。SpringメッセージングAMQPは、メッセージ配信に関する必要なグループからの返信を受ける必要があります。

@EventListener(AfterCreationEvent.class) 
@Publisher(channel = "messages") 
public Message<Message> onCreateEntity(AfterCreationEvent<Message> event) { 
    if (isDisabled()) return null; 
    String id = event.getSource().getId(); 
    return MessageBuilder.withPayload(event.getSource()) 
      .build(); 
} 

をし、他のメッセージが

@StreamListener("messages") 
public void onMessageReceived(@Payload Message input) { 
    messageService.save(input) 
} 

Microservicesは、以下の基本構成を持つ例えば、聞いている: つのサービスは、次のようにメッセージを公開

spring: 
    rabbitmq: 
    host: rabbit 
    port: 5672 
    cloud: 
    stream: 
     bindings: 
     messages: 
      producer: 
      required-groups: terminal,chat,security 
      destination: message.share 
      binder: rabbit 
     binders: 
     rabbit: 
      type: rabbit 

を、各サービスには独自のを持っています構成例:

spring: 
    application.name: message 
    cloud: 
    stream: 
     bindings: 
     messages: 
      content-type: application/json 

spring: 
    application.name: terminal 
    cloud: 
    stream: 
     bindings: 
     messages: 
      group: terminal 

、それが正常に動作します。非同期の方法で動作しますが、メッセージが配信された各必要なグループからの応答を受信したいと考えています。出来ますか?今、私は春-統合AMQPで働いている

:4.3.1.RELEASE

答えて

1

メッセージングAMQPを使用すると、応答を待つことができないので、デフォルトでは、それは自然の非同期だことです。自分で待機機構を実装する必要があります。 1つの方法は、メッセージの相関IDを利用することです。

+0

問題は、org.springframework.messaging.core.GenericMessagingTemplateはdoSendAndReceiveメソッドを持っていますが、パブリッシャ用のメッセージを設定し、doSendAndReceiveメソッドを使用する方法を理解できません。 – b3lowster

関連する問題