我有一个要求,我有两个ASP Net Core应用程序(A和B),它们具有相同的代码库。每个应用程序发布一些命令,它消费和处理。现在,当应用程序A发布消息时,它被A和B消费,因为它们都具有相同的消费者和相同的消息类型。我试图实现这样的行为,当应用程序A发布消息时,消息应该只被A而不是B消费。我想知道是否有可能使用第一个月因为A和B都有不同的前缀。
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
1条答案
按热度按时间x33g5p2x1#
如果我没理解错的话,你正在使用masstransit和rabbitmq,也许你可以通过将exchangetype配置为直接交换类型来解决你的需求。
字符串
通过为项目A和项目B使用不同的routingkey,您可以在需要的项目中相应地使用消息。
check