大型系统内部的资源定位(比如各种服务,各种存储),有两种方式:
- 内部dns解析,用二级域名来定位可用的资源
- 使用方很清晰,望文生义,一下就知道这个是什么服务。比如passport.xxx.com, cache.xxx.com之类的
- 通过修改dns配置,很容易迁移流量。二级域名通常也是解析到vip去。
- 缺点:dns缓存很容易导致系统出问题,而且流量迁移过程通常要持续一个星期
- 内部虚ip,用交换机来定位可用的资源
- 流量迁移可以立刻生效
- 用vip很容易实现round-robin之类的基础failover
- 缺点:vip一旦分配就很难变化,长期来看会导致vip比较混乱
然后,一个服务如果需要跨机房部署,那么不管是dns方式还是vip方式,都需要面临一个选择:是否允许服务被跨机房调用,跨机房常常意味着大延时。dns方式需要考虑域名会被解析到哪个机房去;vip的方式需要考虑客户端应该被告知哪几个可用的vip。