spring-cloud-stream - 装饰 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)
}
}
非常感谢任何建议,谢谢