首先,还是万分感谢大家能够抽空来阅读我的文章,万分感谢。
今天我带来的是.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
网友评论