首先,还是万分感谢大家能够抽空来阅读我的文章,万分感谢。今天我带来的是.Net Core中应用RabbitMQ,和简单封装。因为昨天的文章里说了今天要写,所以今天一定要写出来。小编翻阅了很多资料,想要设计些一个能满足自己需求,也方便扩展,同时保证安全的简单封装。之中翻到一篇很经典的文章,如果你使用RabbitMQ只是为了处理高并发,让消息可以异步处理的话,可以使用下面这个链接。因小编现在做的都是为了自己的分布式架构服务,中间需要实现实时通讯,这个并不是很适合小编。所以小编自己封装了一个,但是大家也可以参考。https://mp.weixin.qq.com/s/Hj5R09StmMgRiCDnf-zLVw小编下面会直接贴图,代码会附在源码上,如不了解RabbitMQ的基本使用方式可以另行查找。首先编写一个RabbitMQHelper,我们在构造函数里创建连接工厂,连接,通道,交换机。建议写进配置文件里,便于后期维护

然后我们用泛型的方式来编写SendMsg方法,泛型的好处这里不多说了

接着是Receive方法,这里我没有使用泛型,是返回出去的直接是字符串,为了适应不同的业务场景,可以自定义序列化。

这里使用了委托的方式,是为了将业务和Helper类分开,便于支持其他业务。

细心的同志们会发现,构造函数里设置了交换机名,函数里设置了队列名,这样的设计是为了编写下面的MQHelperFactory。在这里我们可以自定义各个交换机,也方便调用,而且可以掩饰我们用的是RabbitMQ,降低后期更换其他MQ中间件对开发的影响。

然后,我们就编写完了,实际调用只有一行代码,接受消息也是使用了委托的方式,分离的很好。如果担心每次创建会影响效率,那么可以使用单例模式,或者IOC使配合单例模式使用。这里就不一一介绍,请大家根据自己的业务场景设计。

源码地址:
https://github.com/SkylerSkr/RabbitMQHelper

.Net Core应用RabbitMQ,及简单封装的更多相关文章

  1. RabbitMQ的简单封装

    一般在工作中,都是直接使用已经封装好的mq的程序集进行功能开发.所以很多时候都没有去了解rabbitmq到底是如何封装(实现使用的).所以心血来潮,简单记录下自己对rabbitmq的简单封装 整体的思 ...

  2. DotNet Core 使用 StackExchange.Redis 简单封装和实现分布式锁

    前言 公司的项目以前一直使用 CSRedis 这个类库来操作 Redis,最近增加了一些新功能,会存储一些比较大的数据,内测的时候发现其中有两台服务器会莫名的报错 Unexpected respons ...

  3. .net core 中简单封装Dapper.Extensions 并使用sqlsuger自动生成实体类

    引言 由公司需要使用dapper  同时支持多数据库 又需要支持实体类 又需要支持sql 还需要支持事务 所以采用了 dapper + dapperExtensions  并配套 生成实体类小工具的方 ...

  4. .net core使用rabbitmq消息队列

    看博文的朋友,本文有些过时了,还有些BUG,如果想了解更多用法,看看这篇吧:.net core使用rabbitmq消息队列 (二) 首先,如果你还没有安装好rabbitmq,可以参考我的博客: Ubu ...

  5. Spring jdbc 对象Mapper的简单封装

    一般查询实体的时候,都需要这么使用/**      * 根据id查询      *       * @return      */     public Emp queryEmpById(Intege ...

  6. .NET Core 使用RabbitMQ

    RabbitMQ简介 AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计.消息中间件主要用于组件之间的 ...

  7. [.Net Core] 在 Mvc 中简单使用日志组件

    在 Mvc 中简单使用日志组件 基于 .Net Core 2.0,本文只是蜻蜓点水,并非深入浅出. 目录 使用内置的日志组件 简单过渡到第三方组件 - NLog 使用内置的日志 下面使用控制器 Hom ...

  8. net core 使用 rabbitmq

    windows环境安装: https://www.cnblogs.com/ericli-ericli/p/5902270.html .NET Core 使用RabbitMQ https://www.c ...

  9. MongoDB Python官方驱动 PyMongo 的简单封装

    最近,需要使用 Python 对 MongodB 做一些简单的操作,不想使用各种繁重的框架.出于可重用性的考虑,想对 MongoDB Python 官方驱动 PyMongo 做下简单封装,百度一如既往 ...

随机推荐

  1. elasticsearch 基础 —— Mapping参数boost、coerce、copy_to、doc_values、dynamic、

    boost 在查询时,各个字段可以自动提升 - 更多地依赖于相关性得分,boost参数如下: PUT my_index { "mappings": { "_doc&quo ...

  2. 靶场练习--sqli(3&4)

    第三关 先解决一下第二关遗留下来的问题,嘻嘻.看来数据库原理应当过一遍~ 1.首先判断是否有SQL注入,然后再看是数字型.字符型.发现这里是字符型. 2.order by 查询字段数,记得后面要加一个 ...

  3. hadoop1.2.1配置与运行子串统计程序

    一.虚拟机版本 VirtualBox-4.3.30 二.操作系统 CentOS-6.7-x86_64-bin-DVD1.iso 下载地址1:http://www.centoscn.com/Centos ...

  4. 【LeetCode】贪心 greedy(共38题)

    [44]Wildcard Matching [45]Jump Game II (2018年11月28日,算法群衍生题) 题目背景和 55 一样的,问我能到达最后一个index的话,最少走几步. 题解: ...

  5. phpLite 压缩包 百度云网盘资源

    链接: https://pan.baidu.com/s/1b6EnClYOznWa0OFgk4aNQg 密码: gpup

  6. flutter页面布局二

    Stack 在flutter中,Stack表示堆的意思,可以用来实现页面的定位布局. Stack组件接收两个可选参数: alignment:配置所有子元素的显示位置 children:子组件    在 ...

  7. webBrowser强制在本窗口打开,禁止在新窗口打开

    有时需要用WebBrowser加载URL,来实现某些功能.而这时,我们就不希望所打开的页面中的链接,在新窗口中打开,因为这样的话,实际上是用系统默认的浏览器打开了,从而脱离了你的WebBrowser, ...

  8. [bzoj3462]DZY Loves Math II (美妙数学+背包dp)

    Description Input 第一行,两个正整数 S 和 q,q 表示询问数量. 接下来 q 行,每行一个正整数 n. Output 输出共 q 行,分别为每个询问的答案. Sample Inp ...

  9. (转)k8s存储之NFS

    转:https://www.cnblogs.com/DaweiJ/articles/9131762.html 1 NFS介绍 NFS是Network File System的简写,即网络文件系统,NF ...

  10. maven 国内加速,修改镜像源

    为什么慢 由于默认情况下执行 mvn 各种命令是去国外的 mvn 官方镜像源获取需要安装的具体软件信息,所以在不使用代理.不翻墙的情况下,从国内访问国外服务器的速度相对比较慢 如何修改镜像源 阿里旗下 ...