ASP.NET Core消息队列RabbitMQ基础入门实战演练
一、课程介绍
人生苦短,我用.NET Core!消息队列RabbitMQ大家相比都不陌生,本次分享课程阿笨将给大家分享一下在一般项目中99%都会用到的消息队列MQ的一个实战业务运用场景。本次分享课程不是零基础教学,课程内容的侧重点是讲解的RabbitMQ的最实用、最简单的实战运用场景:Publish/Subscrib(发布/订阅)模式,发送端发送消息,单个接收端接收处理消息。
学完本次"是猴子都看的懂的消息队列RabbitMQ实战课程"后,阿笨带直接让你也能如此优雅简单的上手使用RabbitMQ消息队列,开箱即用,即插即用!
1.1、本次分享课程适合人群如下:
如果您是一个开发老鸟,那么本次课程完全不建议您进行学习!
如果您对RabbtiMQ基础知识有一定的了解或者甚至完全没有了解MQ过,那么或许本次分享课程阿笨站着实战项目开发的角度带领大家在能够让你最直观的体验一下MQ是什么,能够我们的项目中做什么,帮助我们解决什么样的问题。
1.2、一句话总结今天我们学习达到的目标
如何在我们的ASP.NET Core项目中使用消息队列MQ来实现不同系统之间数据同步,从而实现系统应用程序之间解耦。
如果您同样对本次分享《ASP.NET Core消息队列RabbitMQ基础入门实战演练》课程感兴趣的话,那么请跟着阿笨一起学习吧。废话不多说,直接上干货,我们不生产干货,我们只是干货的搬运工。
二、快速利用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
三、消息队列RabbitMQ在ASP.NET Core中实战场景运用
MQ的最常用,最具备典型代表意义的使用场景:实现不同系统之间的数据同步比如:如何实现订单系统OMS将订单同步至发货系统ERP中?
1、基于关系型数据库实现的数据同步方案。
1)、获取待同步的订单列表数据:IEumable<Order> GetWaittingSyncOrderList(int count=100);
2)、更新已同步的订单:boo UpdateOderSyncStatus(int [] orderIds)
2、基于MQ实现的数据同步异步处理方案。
1)、生产者只负责将待同步的订单放入到消息队列中即可。
2)、消费者只负责将消息队列中的带同步订单取出即可。
3、消息接收确认ACK机制防止消息丢失
我们知道默认情况下如果一个Message 被消费者所正确接收则会被从 Queue 中移除
那么如何防止消费者出现异常的时候导致消息的丢失即实现消息消费者如何通知Rabbit消息消费成功。
消息通过acknowledged(ACK )确认是否被正确接收,每个 Message 都要被确认(acknowledged),可以手动去 ACK 或自动 ACK
4、如何通过多线程技术来提高MQ订阅者的处理能力
Publish/Subscrib(e发布/订阅)模式,发送端发送广播消息,单个接收端接收处理消息,这样消费者的处理能力有限,如何在不使用多个接收端的情况下,就能提供我们单个消费者的处理能力呢?答案是肯定的:采用多线程即可。
四、总结
我们学习一门技术,最好先弄明白该技术解决的业务场景是什么,然后带着需求问题去学习和实践。如果大家对消息队列RabbitMQ进一步学习和了解,可以学习一下阿笨早期的分享课程:《C#消息队列RabbitMQ从入门到实战演练》、《C#多线程技术提高消息队列MQ消费者吞吐率》、《C# RabbitMQ延迟队列功能实战项目演练》、《C# RabbitMQ优先级队列实战项目演练》、《C#基于RabbitMQ实现客户端之间消息通讯实战演练》
ASP.NET Core消息队列RabbitMQ基础入门实战演练的更多相关文章
- CAP带你轻松玩转Asp.Net Core消息队列
CAP是什么? CAP是由我们园子里的杨晓东大神开发出来的一套分布式事务的决绝方案,是.Net Core Community中的第一个千星项目(目前已经1656 Star),具有轻量级.易使用.高性能 ...
- 消息队列RabbitMQ基础知识详解
一: 什么是MQ? MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序或者模块对模块的通信方法.MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另 ...
- python使用消息队列RabbitMq(入门)
windows平台开发和使用 安装 安装Erlang:https://pan.baidu.com/s/1QcZDaI205uaue7mMWh5cSA 安装RabbitMQ:https://pan.ba ...
- C# 消息队列之 RabbitMQ 基础入门
Ø 简介 C# 实现消息队列的方式有很多种,比如:MSMQ.RabbitMQ.EQueue 等,本文主要介绍使用 RabbitMQ 实现消息队列的基础入门.包括如下内容: 1. 什么是消息队列? ...
- C#消息队列(RabbitMQ)零基础从入门到实战演练
一.课程介绍 如果您从工作中之听过但未有接触过消息对队列(MQ),如果你接触过一点关于MQ的知识,如果没有这么的多如果的话......,那么阿笨将通过本次<C#消息队列零基础从入门到实战演练&g ...
- WSL2+Docker部署RabbitMQ以及在Asp.net core 中使用RabbitMQ示例(1)
本文主要在于最近因疫情不能外出,在家研究的一些技术积累. 主要用到的技术以及知识点: WSL 2 WSL 2+Docker Docker+RabbitMQ 在ASP.NET Core中使用Rabbit ...
- kafka学习笔记(一)消息队列和kafka入门
概述 学习和使用kafka不知不觉已经将近5年了,觉得应该总结整理一下之前的知识更好,所以决定写一系列kafka学习笔记,在总结的基础上希望自己的知识更上一层楼.写的不对的地方请大家不吝指正,感激万分 ...
- node使用消息队列RabbitMQ一
基础发布和订阅 消息队列RabbitMQ使用 1 安装RabbitMQ服务器 安装erlang服务 下载地址 http://www.erlang.org/downloads 安装RabbitMQ 下载 ...
- 如何在ASP.NET Core中实现一个基础的身份认证
注:本文提到的代码示例下载地址> How to achieve a basic authorization in ASP.NET Core 如何在ASP.NET Core中实现一个基础的身份认证 ...
随机推荐
- python 学习之 基础篇二 字符编码
声明: 博文参考1:字符编码发展历程(ASCII,Unicode,UTF-8) 博文参考2:Python常见字符编码间的转换 (1)为什么要用字符编码 早期的计算机使用的是通电与否的特性的真空管,如果 ...
- MySQL语言分类——DML
DML DML的全称是Database management Language,数据库管理语言.主要包括以下操作: insert.delete.update.optimize. 本篇对其逐一介绍 IN ...
- 记录下vue keep-alive IOS下无法保存滚动scroll位置的问题
最近 做的项目,遇到了一点小麻烦,就是我一个页面A页面是加载 列表数据 ,B页面是展示详细信息的.A进去B时,缓存A页面. 效果 做出来 后,缓存是缓存数据 了,但是当我A页面的列表数据 好多,要滚动 ...
- pip requirements.txt
生成文件 pip freeze > requirements.txt 依赖库会导到于requirements.txt 比如: image.png 从requirements.txt安装依赖库 ...
- C# 读取Excel文件数据
1.首先需要在管理NuGet程序包中添加外部包:ExcelDataReader,添加好后,不要忘记在命名空间那里引用. 2.定义文件流,将文件流传入IExcelDataReader类型的对象excel ...
- K8s Helm安装配置入门
作为k8s现在主流的一种包部署方式,尽管不用,也需要进行一些了解.因为,它确实太流行了. 这一套太极拳打下来,感觉helm这种部署,目前还不太适合于我们公司的应用场景.它更适合需要手工编程各种yaml ...
- nginx访问jupyter
现在jupyter已通过k8s安装完成,并通过nodeport暴露出来. 如果不能直接访问这个nodeport(像我在的公司)或是希望能组织好jupyter实例, 那应该如何调通呢? 这里包括两个技术 ...
- flask的客户端服务端
1.首先要进行后端与前端的连接有get 和post请求 get请求是直接在网页上打出已将定义好的网址 if __name__ == '__main__': app.run(host="loc ...
- Feign 报错:No fallback instance of type class xxx found for feign client xxx
通常需要确认配置内容: 开启 Hystrix:feign.hystrix.enabled=true Fallback类需要注解@Component 出处:https://www.jianshu.com ...
- 21-C#笔记-名称空间
和C++不同的地方: 1. 访问内部成员的方式使用 点 namespace_name.item_name; 2. using 的语法 using System; 参考: http://www.runo ...