设为首页 收藏本站
查看: 739|回复: 0

[经验分享] Windows 2003-32bit上RabbitMQ不定期崩溃

[复制链接]

尚未签到

发表于 2015-11-2 14:15:32 | 显示全部楼层 |阅读模式
  转载请注明出处: jiq·钦's technical Blog - 季义钦

  现象:
  最近一个系统用到了RabbitMQ消息中心,这个系统又必须用于替换旧的系统,所以就有了必须运行在Windows 2003 32bit机器上面的限制。
  因为需求获取原因,所以可以说到了集成测试阶段才知道这个限制,当系统跑起来的时候,发现一个致命性问题:RabbitMQ Broker(NT服务)不定期崩溃。
  打开windows事件管理器看到错误如下:
DSC0000.jpg

  但是在windows 2003 64bit和windows 2008上面运行都没有任何问题。
  

  发现问题:
  根据这个错误,猜测是RabbitMQ运行时调用某个函数出了问题,因为这个dll是存在的并没有丢失,所以想先测试一下到底是哪种RabbitMQ使用方式导致出了问题,所以写了发送接收,发布订阅等测试程序测了一下,运行良好。
  看来我写的这些测试程序都无法触发这个错误重现,于是正常使用系统,然后在Web管理界面观察消息吞吐量,这个时候意外发现用到的消息队列上面竟然驻留了好几十万条消息了,怎么可能,我们系统所有用到RabbitMQ的地方我都了解,同一时刻不可能达到这么大的量,于是我开始思考为什么。。。
  我的测试程序和系统有什么较大的区别?
  对了,是通道,Shovel。
  这里 有针对通道的详细介绍,这里就不一一赘述了,我们采用的是动态通道(Dynamic Shovels),通过Web管理界面或者dos命令动态创建和删除,比较灵活。
  
  我们系统是全国分布式部署,为了消息可靠性,能够容忍WAN环境,所以采用Shovel插件来连接各个省份的消息中心,难道是通道引起的么?继续思考。。。
  突然想到一种类似于一颗弹珠在一个封闭空间内不停弹射出现数量爆炸式增长的的现象,难道我的通道出现了死循环么?
  再三检查一下发现的确如此:
  1 我们每个分布式RabbitMQbroker称为一个省分中心;
  2 每个省份中心都用自身的省编码作为消息路由的路由键;
  3 建立的所有通道的确都已经设置了消息推送的路由键;
  4 所有省分中心都建立了各种出去和进来的通道;
  5 所有带有路由键的消息都能够正确路由到对应的省分中心;
  
  一切看起来似乎很美好,但是忽略了一个很恶心的事实:
  对于不带路由键的消息,可以通过带有任何路由键的通道推送出去。
  就是这个原因,因为我们开发的客户端库有一种模式发送出去的消息没有路由键,导致这么一条消息进入这个系统之后,开始在各个省分中心之间不停“弹射”,最终爆炸式增长。
  
  解决方法:
  确保跨省分中心传送的消息(可能经过通道)都必须带有路由键。
  
  为什么只有Windows2003 32bit会崩溃?
  经过测试,发现Windows 200332bit在单个消息队列驻留的消息量达到80w左右,就会导致RabbitMQ Broker崩溃。而windows 2008和windows 2003 64bit都可以在150W以上的消息量的时候都还能稳定运行,至于上限是多少没有具体测试。
  至于为什么会有这个区别,明显跟操作系统位数相关,具体原因有待继续研究。
             版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-134155-1-1.html 上篇帖子: Windows 2003关机慢解决 下篇帖子: 无光驱、软驱,通过PXE安装Windows 2003(转载)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表