google 是如何实现不同的服务同一个 ip 地址?

2014-10-29 10:31:17 +08:00
 sharewind
3872 次点击
所在节点    Google
17 条回复
tabris17
2014-10-29 10:40:39 +08:00
host呗
xidianlz
2014-10-29 10:42:55 +08:00
可能你看到的只是放在公网的一个代理服务器,真实的服务器可能藏在代理服务器后面,根据你的请求转发到不同的真实服务器。
以上言论均属猜测。
millken
2014-10-29 10:43:04 +08:00
BGP
lhbc
2014-10-29 10:47:14 +08:00
你是指不同的服务器使用同一个IP还是同一台服务器承载多种业务?

前者:
anycast+集群。
后者:
数据都在数据中心里,前端(anycast+集群)根据业务类型(简单来讲就是URL)提交给相应的数据中心服务器处理。
clino
2014-10-29 10:57:17 +08:00
反向代理不就行了,不同的域名转给不同的应用处理
mhycy
2014-10-29 11:03:15 +08:00
一直很想知道入口服务器是如何保证高可用的....
tmqhliu
2014-10-29 11:19:19 +08:00
@mhycy Google的入口服务器是分布在全球的,使用 Anycast 技术任何一台都可以充当服务器
jasontse
2014-10-29 11:21:48 +08:00
这很稀奇吗? 虚拟主机不就是这样的?
mhycy
2014-10-29 11:25:33 +08:00
@tmqhliu
事实上一个区域同一时间同一个请求访问的服务器是同一台的.即使检测到离线并切换这中间也会有数秒的停顿时间.
而且即使是某一个特定的区域,Anycast也只能把多个IP解析到多个服务器上,不可能单个IP解析到多个服务器,如果单个IP解析到多个服务器的话请求本身就不是连续的了.如果引入额外的同步设备,这也会增加单点故障的风险.
lhbc
2014-10-29 11:52:42 +08:00
@mhycy 肯定会使用集群的,所以特定区域的单台服务器故障不会有任何影响
如果是某地区的线路故障,Anycast把路由切换至其他区域也就是瞬间的事,而且这应该是有监控并且自动切换的
mhycy
2014-10-29 12:07:10 +08:00
@lhbc 集群说着容易,但是实现难点很多.

入口服务器即使是个集群,对于一个session必定会在请求的时间内解析到某个特定的机子.
而解析到某个特定的机子这中间必须经过一个负载均衡设备.
而这个设备本身会引入额外的单点故障风险.
前端服务器切换这个动作肯定可以瞬间完成,但是切换之前这个心跳信息因为负载的关系肯定不会过于频繁.
这就会引出一个问题,如果这个负载均衡设备出现单点故障的话那就必定会产生一段时间的服务中断.

那么如何保证这一个点高可用呢?
learnshare
2014-10-29 12:08:31 +08:00
反向代理不是很简单?
mhycy
2014-10-29 12:12:46 +08:00
@lhbc
@tmqhliu

换个说法好了,写的自己都乱了....囧

请求的上下行数据流本身是分散的数据包
所以数据流本身不可能转发到两台不相关的机子.

只能有一个机子接收,那么那个机子就是事实上的入口服务器.
入口服务器可以损坏,但是在损坏这段时间,毕竟会中断一部分的数据流
如果要避免这个情况发生,可以镜像处理.
但是镜像也最终会汇聚到一个点进行判断,然后再最终输出.
这样判断设备本身产生了新的单点故障风险.

所以纠结的问题就是:如何避免这个单点存在呢?
lhbc
2014-10-29 13:10:23 +08:00
@mhycy session,cookies都可以存在另外的集群上,根本不存在单点故障。
mhycy
2014-10-29 13:15:47 +08:00
@lhbc

这个session指的不是web上面的session
指的是TCP会话本身,别误会...
wdlth
2014-10-29 13:54:07 +08:00
本来就是前端服务器,就像CDN一样,服务是由后端提供的。
moemoedar
2014-10-29 22:23:57 +08:00
任播技术

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/142293

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX