RabbitMQ

RabbitMQ (七) 订阅者模式之主题模式 ( topic )

柔情痞子 提交于 2020-10-26 05:10:45
主题模式和路由模式很像 路由模式是精确匹配 主题模式是模糊匹配 依然先通过管理后台添加一个交换机. 生产者 public class Producer { private const string ExchangeName = " test_exchange_topic " ; public static void Send() { // 获取一个连接 IConnection connection = ConnectionHelper.GetConnection(); // 从连接中获取一个通道 IModel channel = connection.CreateModel(); // 声明交换机 //channel.ExchangeDeclare(ExchangeName, "topic", false, false, null); // 每次只向消费者发送一条消息,消费者使用后,手动确认后,才会发送另外一条 channel.BasicQos( 0 , 1 , false ); string msg = " hello world " ; // 发送消息,只发送到路由键为"product.delete" 或者 "product.#"的队列. // # 匹配一个或多个 // * 匹配一个 // 上限为 255 个字节 channel.BasicPublish

RabbitMQ (七) 订阅者模式之主题模式 ( topic )

心不动则不痛 提交于 2020-10-25 04:41:16
主题模式和路由模式很像 路由模式是精确匹配 主题模式是模糊匹配 依然先通过管理后台添加一个交换机. 生产者 public class Producer { private const string ExchangeName = " test_exchange_topic " ; public static void Send() { // 获取一个连接 IConnection connection = ConnectionHelper.GetConnection(); // 从连接中获取一个通道 IModel channel = connection.CreateModel(); // 声明交换机 //channel.ExchangeDeclare(ExchangeName, "topic", false, false, null); // 每次只向消费者发送一条消息,消费者使用后,手动确认后,才会发送另外一条 channel.BasicQos( 0 , 1 , false ); string msg = " hello world " ; // 发送消息,只发送到路由键为"product.delete" 或者 "product.#"的队列. // # 匹配一个或多个 // * 匹配一个 // 上限为 255 个字节 channel.BasicPublish

RabbitMq学习(五)消息确认之发送确认-注意事项

坚强是说给别人听的谎言 提交于 2020-10-24 20:42:00
消息发送确认 生产者发送消息,是先发送消息到Exchange,然后Exchange再路由到Queue。这中间就需要确认两个事情,第一,消息是否成功发送到Exchange;第二,消息是否正确的通过Exchange路由到Queue。 spring提供了两个回调函数来处理这两种消息发送确认。 ConfirmCallback和ReturnCallback 实现ConfirmCallback并重写confirm(CorrelationData correlationData, boolean ack, String cause)回调方法,可以确认消息是否发送到Exchange。 实现ReturnCallback并重写returnedMessage(Message message, int replyCode, String replyText, String exchange, String routingKey)回调方法,可以确认消息从EXchange路由到Queue失败。注意:这里的回调是一个失败回调,只有消息从Exchange路由到Queue失败才会回调这个方法。 注意,若需要以上两个回调函数生效,需要添加配置 配置文件: # 开启发送确认 spring.rabbitmq.publisher-confirms=true # 开启发送失败退回 spring.rabbitmq