【发布时间】:2019-05-17 09:23:24
【问题描述】:
我想使用topic exchange 将股票价格数据发送到rabbitmq。这个想法是我使用以下路由键进行主题交换:
<message-type>.<ticker>
我能够使用原生 RabbitMQ cient 完成此操作,但我无法弄清楚如何在 MassTransit 的帮助下完成此操作。
// setup topologies
rabbitCfg.Send<ComMessage>(x =>
{
x.UseRoutingKeyFormatter(context =>
$"quote.{context.Message.Ticker}");
});
rabbitCfg.Message<ComMessage>(x => x.SetEntityName("Quotes"));
rabbitCfg.Publish<ComMessage>(x =>
{
x.ExchangeType = ExchangeType.Topic;
});
// setup reciever
rabbitCfg.ReceiveEndpoint(host, "MSFT", e =>
{
e.Bind("Quotes", c =>
{
c.RoutingKey = "quote.MSFT";
c.ExchangeType = ExchangeType.Topic;
});
e.Consumer<PriceConsumer>();
});
发送消息:
await _bus.Publish(new ComMessage
{
Ticker = "MSFT",
Price = "10"
});
但是,它不起作用。队列未创建,但交换接收消息:
哪里出了问题?
【问题讨论】:
标签: c# rabbitmq masstransit