RabbitMQ 消息实现过程+事务+消息确认

服务端(生产者)
1、引用 rabbitmq 包
2、建立连接工厂 connectionfactory
3、创建 频道 createchannel
4、在频道中 绑定消息队列
5、发布basicpubilsh 消息
 
服务端和rabbitmq 的事务(多条消息发送--必须保证全部成功)
txSelect() 开启事务
txCommit 提交事务
txrollback 回滚
 
服务端和rabbitmq 进行消息确认(防止rabbitmq 故障)
channel.confirmSelect() 开启消息确认
channel.WaitForConfirms() 接收rabbit 的反馈消息 bool 是否成功
channel.WaitForConfirmOrDie() 无返回值,成功在此方法后继续执行逻辑
 
 
 
 
 
客户端(消费者)
1、引用 rabbitmq 包
2、建立连接工厂 connectionfactory
3、创建 频道 createchannel
4、在频道中 绑定消息队列
5、定义Consumer 绑定channel,consumer.Received+=(model,ea)=>{接受消息(二进制)}
6、消费basicConsume消息
 
 
rabbitmq 和消费者的消息确认
1、自动确认回执
channel.BasicConsume(queue:"hello",autock:false,consume:consumer)
2、非自动确认(解决,消息接受成功,消费者内部执行失败)
如果发生异常 channel.BasicReject 拒绝--通知rabbitmq 让其他消费者消费,rabbitmq 不再给当前消费者 发布消息
未发生异常 channel.BasicAck主动删除 rabbitmq 里的消息
channel.BasicConsume(queue:"hello",autock:true,consume:consumer)
 

posted @ 2022-04-10 10:58  周捷Jay  阅读(346)  评论(0编辑  收藏  举报