Broker 事件監聽器
當 Event Exchange Plugin 啟用時,如果您在應用程式內容中新增 BrokerEventListener
類型的 bean,它會將選定的 Broker 事件發布為 BrokerEvent
實例,這些實例可以使用一般的 Spring ApplicationListener
或 `@EventListener` 方法來消費。事件由 Broker 發布到主題交換器 `amq.rabbitmq.event`,每個事件類型都有不同的路由金鑰。監聽器使用事件金鑰,這些金鑰用於將 `AnonymousQueue` 繫結到交換器,以便監聽器僅接收選定的事件。由於它是一個主題交換器,因此可以使用萬用字元(以及明確請求特定事件),如下例所示
@Bean
public BrokerEventListener eventListener() {
return new BrokerEventListener(connectionFactory(), "user.deleted", "channel.#", "queue.#");
}
您可以使用一般的 Spring 技術,在個別事件監聽器中進一步縮小接收到的事件範圍,如下例所示
@EventListener(condition = "event.eventType == 'queue.created'")
public void listener(BrokerEvent event) {
...
}