MassTransit与非.NET服务的互操作性

时间:2018-03-29 14:13:09

标签: masstransit

我一直在使用MassTransit并且非常喜欢它。但是,默认情况下,它会使用特定于MassTransit的某些JSON包装所有RabbitMQ有效负载/消息。这使得很难与非.NET服务交换消息。我知道JSON可以被任何语言解析,但MassTransit只是一个.NET的东西,在我的非.NET服务中,我想避免添加特殊的逻辑来处理由MassTransit生成的消息。

是否可以使用不通过“MessageEnvelope”接口的MassTransit序列化JSON消息,以便与非MassTransit服务建立更好的互操作性?或者这会打破大部分/全部MassTransit功能吗?

1 个答案:

答案 0 :(得分:6)

described in the documentation

由于消息格式是预先定义的,因此您无法避免使用某些特殊逻辑来消费MT消息。

这是一条最小的消息:

{
    "destinationAddress": "rabbitmq://localhost/input_queue",
    "headers": {},
    "message": {
        "value": "Some Value",
        "customerId": 27
    },
    "messageType": [
        "urn:message:MassTransit.Tests:ValueMessage"
    ]
}