首页 > 解决方案 > 装饰 gcp-pubsub 流数据

问题描述

我们广泛使用 GCP PubSub,使用 spring cloud steam 的功能绑定方法:

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

, 和org.springframework.cloud.stream.function.StreamBridge

有人知道拦截此类消息的推荐方法吗?我们的用例是我们需要手动为每条消息添加一个跟踪标识符。我正在考虑使用 ChannelInterceptor(例如下面,它工作正常,但不确定是否好主意)或 Aspect。关于方面,我尝试了一些切入点,但没有任何乐趣。

@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)
    }
}

非常感谢任何建议,谢谢

标签: spring-cloud-streamspring-cloud-gcp

解决方案


推荐阅读