点击数:457

——实例:
环境隔离实践起来很麻烦,说多了大家总也不信,总觉得是狼来了,但在这上面出的事儿一个接一个。
2014年5月13日,一个正常的周二常规版本上线日。第二天,有用户投诉登录未获赠积分,有城市经理反映商品展示销量与实际不符。
因某种未知原因,线上镜像环境的消费者客户端启动的时候,把自己注册到了生产环境的 NotifyServer。于是线上生产环境的 NotifyServer 就开始对镜像环境的消费者做定期检查,如果发现该消费者在线,就把它加到消息分发的消费者组中。NotifyServer 分配中心负责发送消息,每隔一段时间会从notifyserver-console 服务器更新一下可用的消费者,然后在发消息的时候,随机选择一台,发送过去。如果正好随机发给镜像消费者,等于说生产环境消息就丢失了。
——教训:
与此类似,之前也发生过一次跨环境访问,2013年9月商品中心镜像环境因为 mongodb 域名未配置,导致镜像环境里的商品排序更新到了生产环境,导致线上首页商品排序离奇错乱。
短期策略:镜像环境的 dns 服务器与生产环境 dns 服务器分离,各自维护自己需要的记录。
长期来讲,还是要在私有云上保证环境隔离,因为我们无法预知下一次环境污染会造成什么后果
关键词:数据一致性,环境独立,隔离