起因:
今天项目出问题了,需要重启,openfire使用nginx搭建了负载均衡2个节点,所以可以轻松平滑随意启动。
但是redis至始至终只有一个点,今天问题就出在redis,redis重启就导致整个系统都全部需要重启,意味着服务会暂停一段时间.这在一个大用户的环境下是不可想象的。
因此引发了我的思考,如果是mysql有问题宕机或者需要平滑重启呢?如果是搜solr索服务器宕机需要平滑重启呢?
openfire和tomcat应用服务器都做了高可用,因此无须担心。
—————————————————————分割线———————————————————————
所以
在整个系统中,我们应该保证:
无论是哪个环节出了事,负责哪个组件的服务器宕机,都不应该对我们的服务造成影响。
这就需要每一个点我们都需要做成高可用!
可以使用haproxy或者nginx.
好的系统必须能做到平滑重启,不影响服务,任何一个节点出问题都不影响大局.
另一方面就是备份.特别是在升级系统前,一定要备份.保证如果升级后出了问题,能马上切换到之前的正常运行状态。
(即使经过很多测试,新系统也不可避免会有bug,这需要真实环境及用户才能检测出来)