ASP.NET Core消息队列RabbitMQ基础入门实战演练

1、课程介绍

人生苦短,我用.NET Core!消息队列RabbitMQ你们相比都不陌生,本次分享课程阿笨将给你们分享一下在通常项目中99%都会用到的消息队列MQ的一个实战业务运用场景。本次分享课程不是零基础教学,课程内容的侧重点是讲解的RabbitMQ的最实用、最简单的实战运用场景:Publish/Subscrib(发布/订阅)模式,发送端发送消息,单个接收端接收处理消息。docker

学完本次"是猴子都看的懂的消息队列RabbitMQ实战课程"后,阿笨带直接让你也能如此优雅简单的上手使用RabbitMQ消息队列,开箱即用,即插即用!数据库

1.一、本次分享课程适合人群以下:多线程

若是您是一个开发老鸟,那么本次课程彻底不建议您进行学习!异步

若是您对RabbtiMQ基础知识有必定的了解或者甚至彻底没有了解MQ过,那么或许本次分享课程阿笨站着实战项目开发的角度带领你们在可以让你最直观的体验一下MQ是什么,可以咱们的项目中作什么,帮助咱们解决什么样的问题。学习

1.二、一句话总结今天咱们学习达到的目标线程

如何在咱们的ASP.NET Core项目中使用消息队列MQ来实现不一样系统之间数据同步,从而实现系统应用程序之间解耦。blog

若是您一样对本次分享《ASP.NET Core消息队列RabbitMQ基础入门实战演练》课程感兴趣的话,那么请跟着阿笨一块儿学习吧。废话很少说,直接上干货,咱们不生产干货,咱们只是干货的搬运工。rabbitmq

2、快速利用Docker构建RabbitMQ容器环境搭建

Docker最近很火,因此就打算使用。你们根据自身状况,若是是刚开始学习的RabbitMQ话,这里仍是建议你们先安装在Windows系统或者是Linux系统上。队列

docker run -d --name aben-rabbitmq -p 15672:15672 -p 5671:5671 -p 5672:5672 rabbitmq:management开发

此时,咱们能够访问以下地址来访问自带的Web管理页面: http://192.168.137.237:15672/

默认帐号/密码:guest/guest

3、消息队列RabbitMQ在ASP.NET Core中实战场景运用

MQ的最经常使用,最具有典型表明意义的使用场景:实现不一样系统之间的数据同步好比:如何实现订单系统OMS将订单同步至发货系统ERP中?

一、基于关系型数据库实现的数据同步方案。

1)、获取待同步的订单列表数据:IEumable<Order> GetWaittingSyncOrderList(int count=100);

2)、更新已同步的订单:boo UpdateOderSyncStatus(int [] orderIds)

二、基于MQ实现的数据同步异步处理方案。

1)、生产者只负责将待同步的订单放入到消息队列中便可。

2)、消费者只负责将消息队列中的带同步订单取出便可。

三、消息接收确认ACK机制防止消息丢失

咱们知道默认状况下若是一个Message 被消费者所正确接收则会被从 Queue 中移除

那么如何防止消费者出现异常的时候致使消息的丢失即实现消息消费者如何通知Rabbit消息消费成功。

消息经过acknowledged(ACK )确认是否被正确接收,每一个 Message 都要被确认(acknowledged),能够手动去 ACK 或自动 ACK

四、如何经过多线程技术来提升MQ订阅者的处理能力
Publish/Subscrib(e发布/订阅)模式,发送端发送广播消息,单个接收端接收处理消息,这样消费者的处理能力有限,如何在不使用多个接收端的状况下,就能提供咱们单个消费者的处理能力呢?

答案是确定的:采用多线程便可。

4、总结

咱们学习一门技术,最好先弄明白该技术解决的业务场景是什么,而后带着需求问题去学习和实践。若是你们对消息队列RabbitMQ进一步学习和了解,能够学习一下阿笨早期的分享课程:《C#消息队列RabbitMQ从入门到实战演练》、《C#多线程技术提升消息队列MQ消费者吞吐率》、《C# RabbitMQ延迟队列功能实战项目演练》、《C# RabbitMQ优先级队列实战项目演练》、《C#基于RabbitMQ实现客户端之间消息通信实战演练》


Docker构建RabbitMQ
 
 

ASP.NET Core使用RabbitMQ
相关文章
相关标签/搜索