博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
我心中的核心组件~MSMQ与Redis队列
阅读量:5742 次
发布时间:2019-06-18

本文共 1116 字,大约阅读时间需要 3 分钟。

这个文章其实是我心中的核心组件的第七回,确实在时间上有些滞后了,但内容并不滞后!本文MSMQ只是个引题,我确实不太想说它,它是微软自己集成的一套消息队列,寄宿在Window服务里,稳定性十在不敢恭维,而redis队列我们选择的驱动客户端是ServiceStack.Redis,之所以选择它就是因为它稳定,更新快,对于其它的驱动可能用上几年都不会去更新,而ServiceStack.Redis一直走到redis客户端的前沿!

Redis队列实时和非实时:这个说的实时和非实时主要针对的是消费者这边,消息生产者在生产消息后,Redis队列里存储了这些消息,而何时消费就是我们要关心的问题了,非实时是说,在后端有个轮训服务定时从队列里拿消息,这有一定的延时性;实时是说在消费者一边建立Tcp长连接,当队列有数据后马上消费它,当没有数据时线程处于挂起等待状态!

大叔实时消息队列的消费者实现(Redis队列)

      while (true)            {                var redis = Redis.Client.RedisManager.GetClient();//redis连接池                if (redis.GetListCount("queue1") == 0) //消息为空挂起                {                    Console.ForegroundColor = ConsoleColor.Green;                    Console.WriteLine("队列为空,挂起1秒");                    Thread.Sleep(1000);                }                else                {                    Console.ForegroundColor = ConsoleColor.Yellow;                    Console.WriteLine("从队列拿出:" +                    redis.PopItemFromList("queue1"));                }            }

大叔非实时消息队列的实现

非实时队列主要是在消费者一方采用了某种调度机制,定时去redis队列里去拿数据,逻辑没什么复杂的,大叔采用的调度组件还是Quartz.Net,原因是它功能强大,配置灵活,解耦能力比较强!

配合Cron表达式功能更强大

转载地址:http://zlnzx.baihongyu.com/

你可能感兴趣的文章
Centos7.1下安装cobbler
查看>>
wx:for修改样式
查看>>
linux查看网络信息命令
查看>>
Hyper-V 安装Windows 2008,08 R2,12 R2 无网卡驱动的解决办法
查看>>
如何对团队进行绩效考核
查看>>
数学模型
查看>>
java加载properties文件的六种方法总结
查看>>
MyBatis(一)helloWorld程序
查看>>
来自自身的信息——“灵魂暗夜”
查看>>
Zoj1628--Diamond(Dfs《暴力》)
查看>>
基于centos的freeradius高可用lvs(UDP)
查看>>
Codeforces Problem 778B Bitwise Formula
查看>>
达拉草201771010105《面向对象程序设计(java)》第十一周学习总结
查看>>
J2EE规范
查看>>
Java泛型概念
查看>>
矩阵基础
查看>>
【图论算法】Dijstra&BFS
查看>>
【leetcode】962. Maximum Width Ramp
查看>>
python学习day4之路文件的序列化和反序列化
查看>>
css选择器
查看>>