开发背景
在DreamWeixin设计之初,就已经预想到以DreamWeixin的功能性质,必然会成为以后多个项目的核心服务。
所以确保DreamWeixin的在线正常运行至关重要,监控服务必不可少。
在我的项目中,担任这项服务的是DreamMonitor,但是DreamMonitor是微信报警,而微信报警时的核心服务又是DreamWeixin,也就是说,当DreamWeixin故障时,DreamMonitor也无法报警,所以DreamWeixin的监控服务无法由DreamMonitor来完成。综上所述,最终决定特别做一个DreamWeixin专用的监控服务。
双向报警
DreamWeixinMonitor保证DreamWeixin的正常,但是一旦DreamWeixinMonitor故障的话,监控服务也无法建立。
所以,为了保证服务的稳健,使用了双向报警设计。DreamWeixin故障时,DreamWeixinMonitor发出报警,DreamWeixinMonitor故障时,DreamWeixin发出报警,二者双辅双成,缺一不可。
地域分布
DreamWeixin和DreamWeixinMonitor的双向报警设计,决定了必须要至少有一方正常运行才可以正常监控的。
因此,二者不可以同时在一台服务器上安装,否则服务器一旦故障,二者都同时无法运行,监控服务就名存实亡了。
在目前的使用中,DreamWeixin为了兼顾对国内的网速,设在美国西部。而DreamWeixinMonitor则放到了美国中部,二者不单是不同机房,地域上分隔了半个美国,甚至连ISP服务商都不一样,可以充分发挥出二者双向监控,双向报警的功能。
监控间隔
DreamWeixin身上肩负着多个项目的核心服务,所以DreamWeixinMonitor对的监控是3-5分钟,随时可调整,以确保服务的正常运行。
但DreamWeixinMonitor只负责DreamWeixin这一个项目,所以优先级就比较低了,DreamWeixin是30分钟,如果发生故障,则转为10分钟,直到服务重新上线,再恢复成30分钟。
随用随走
DreamWeixin和DreamWeixinMonitor二者需要分布在不同的地域上,也可以认为,DreamWeixinMonitor需要避开DreamWeixin所在的地区。因此,一开始DreamWeixinMonitor就被设计成绿色安装,随用随走的模式,现在在美国中部,下一分钟可以在美国东部,美国北部,国内,日本等任意地区迁移,这不会对双向监控造成影响
关联项目
DreamWeixin