【问题标题】:Is it possible to set up AMQP message properties in outgoing message?是否可以在传出消息中设置 AMQP 消息属性?
【发布时间】:2017-04-19 09:09:06
【问题描述】:

我正在使用带有 RabbitMQ 绑定器的 Spring Cloud Stream。我需要调用不使用 Spring Cloud Stream 的外部服务。该服务正在使用typecorrelation_id 消息属性。

我尝试在传出消息中设置标题,但即使属性在技术上是标题,它们也会以特殊方式处理。所以设置type header 不会设置属性。

我知道拦截器,如果只使用 Spring RabbitMq,那将不是问题。但由于 Spring Cloud Stream 代表更高级别的抽象,所有 binder 特定的设置都被隐藏了。

是否有可能在传出的流消息中设置 RabbitMQ 属性?

【问题讨论】:

    标签: spring-rabbit spring-cloud-stream


    【解决方案1】:

    属性从由AmqpHeaders 常量键控的消息头映射;在这种情况下,AmqpHeaders.TYPE (amqp_type) 和 AmqpHeaders.CORRELATION_ID (amqp_correlationId)。

    所有“未知”的消息头都被映射为兔子头。

    【讨论】:

    • 刚刚仔细检查...类型工作正常,但相关 id 似乎丢失了。我正在使用 .setHeader(AmqpHeaders.CORRELATION_ID, correlationId) 构建消息
    • 后续评论:Correlation id 是库内部使用的,不能自己使用。
    • 如果您的意思是 RabbitTemplate - 请参阅属性 correlationKey,它指示框架使用不同的标头进行关联 - 当然接收方也需要知道这一点。
    猜你喜欢
    • 1970-01-01
    • 2016-12-23
    • 2017-10-23
    • 2017-03-16
    • 1970-01-01
    • 2023-01-20
    • 1970-01-01
    • 1970-01-01
    • 2017-02-13
    相关资源
    最近更新 更多