0

Spring Cloud Steam の関数型バインダー アプローチを使用して、GCP PubSub を広く使用しています。

        <dependency>
            <groupId>com.google.cloud</groupId>
            <artifactId>spring-cloud-gcp-pubsub-stream-binder</artifactId>
        </dependency>

、 とorg.springframework.cloud.stream.function.StreamBridge

そのようなメッセージを傍受するための推奨される方法を知っている人はいますか? 私たちの使用例は、各メッセージに手動でトレース識別子を追加する必要があることです。私はChannelInterceptor(例えば、以下、うまく動作しますが、良いアイデアかどうかはわかりません)またはアスペクトの使用を検討していました。アスペクトに関して、私はいくつかのポイントカットを試しましたが、喜びはありませんでした.

@GlobalChannelInterceptor(patterns = ["[*-out]"])
class OutboundChannelInterceptor : ChannelInterceptor {
    override fun preSend(message: Message<*>, channel: MessageChannel): Message<*> {
        val mutableAccessor = MessageHeaderAccessor.getMutableAccessor(message)
        mutableAccessor.setHeader("aha", System.currentTimeMillis())
        return GenericMessage(message.payload, mutableAccessor.messageHeaders)
    }
}

どんなアドバイスも大歓迎です、ありがとう

4

0 に答える 0