生产端
channel.QueueDeclare(queueName, true, false, false, null);
//channel.QueueBind(queueName, exchangeName, routeKey);
string message = JsonConvert.SerializeObject(eventData);
byte[] body = Encoding.UTF8.GetBytes(message);
channel.BasicPublish(exchangeName, routeKey, null, body);
消费端:
channel.ExchangeDeclare(exchangeName, exchangeType, true, false, null);
channel.QueueDeclare(queueName, true, false, false, null);
channel.QueueBind(queueName, exchangeName, "23we");
var consumer = new EventingBasicConsumer(channel);
consumer.Received += async (model, ea) =>
{
string eventName = ea.RoutingKey;
byte[] resp = ea.Body.ToArray();
string body = Encoding.UTF8.GetString(resp);
_log.LogInformation(body);
}
问题是我不管消费端的routekey写什么,都能收到消息,不应该是根据生产端的routeky来确定的吗?
完整代码贴一下,这看不出来问题。
这就是全部代码了
会不会是之前使用过了这个route-key
@灬丶: 建议你登陆RabbitMQ控制台看一下,你的交换机的类型是什么。一般上自己安装的RabbitMQ 通过http://{node-hostname}:15672/就可以访问,默认用户名密码都是guest
@灬丶: 我有点好奇你的交换机类型是啥了。
@不安分的黑娃: direct