2016-12-05 103 views
0

我正在使用Spring Cloud Stream和RabbitMQ活页夹。我需要调用不使用Spring Cloud Stream的外部服务。此服务正在使用typecorrelation_id消息属性。是否可以在传出消息中设置AMQP消息属性?

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

我知道拦截器,如果只使用Spring RabbitMq,它不会是一个问题。但是由于Spring Cloud Stream代表更高层次的抽象,所有特定于binder的特定设置都是隐藏的。

有没有可能在出站流消息中设置RabbitMQ属性?

回答

1

属性从消息标题映射为AmqpHeaders常量;在这种情况下为AmqpHeaders.TYPEamqp_type)和AmqpHeaders.CORRELATION_IDamqp_correlationId)。

所有“未知”消息标题被映射为兔子标题。

+0

只是双重检查...类型工作正常,但相关ID似乎缺少。我正在用'.setHeader(AmqpHeaders.CORRELATION_ID,correlationId)'建立一条消息' – waste

+0

后续评论:相关ID由库内部使用,所以你不能自己使用它。 – waste

+0

如果您的意思是'RabbitTemplate' - 请参阅属性'correlationKey',它指示框架使用不同的标头进行关联 - 当然接收方也需要知道这一点。 –

相关问题