rabbitmq 大众运输中的信息消费

q9yhzks0  于 11个月前  发布在  RabbitMQ
关注(0)|答案(1)|浏览(128)

我有一个要求,我有两个ASP Net Core应用程序(A和B),它们具有相同的代码库。每个应用程序发布一些命令,它消费和处理。现在,当应用程序A发布消息时,它被A和B消费,因为它们都具有相同的消费者和相同的消息类型。我试图实现这样的行为,当应用程序A发布消息时,消息应该只被A而不是B消费。
我想知道是否有可能使用
第一个月
因为A和B都有不同的前缀。

x33g5p2x

x33g5p2x1#

如果我没理解错的话,你正在使用masstransit和rabbitmq,也许你可以通过将exchangetype配置为直接交换类型来解决你的需求。

cfg.send<testmessage>(x => { x.useroutingkeyformatter(context => "routingkey"); });
cfg.message<testmessage>(x => x.setentityname("testmessage"));
cfg.publish<testmessage>(x => { x.exchangetype = exchangetype.direct; });
cfg.receiveendpoint(host, "testmessage_queue", e =>
{
    e.bindmessageexchanges = false;
    e.consumer<updatecustomerconsumer>();
    e.bind("testmessage", x =>
    {
        x.exchangetype = exchangetype.direct;
        x.routingkey = "routingkey";
    });
});

字符串
通过为项目A和项目B使用不同的routingkey,您可以在需要的项目中相应地使用消息。
check

相关问题