
事情是这样的,由于 bei'an 原因网站必须放在国内,目前用的是阿里云北京区,然而客户有需求要求数据库放在境外公司,网站图片部分也要优先选择境外。
现在问题来了,找了好几家网络提供商,速度都不理想,现在用了日本樱花的,阿里云服务器 ping 过去是 140-180ms,但是当数据库启用日本服务器,web 用阿里云北京区的时候,网站速度明显慢了很多。
不知道你们有什么好的解决方案没有啊。
1 bigzhu 2017-05-01 08:46:35 +08:00 via Android 买个阿里香港双线主机做代理 |
2 hippoking 2017-05-01 08:53:17 +08:00 用阿里云 HK 和 阿里云华南 1 区 延迟很稳定,12ms |
3 mhycy 2017-05-01 09:06:25 +08:00 国内反代,源服务器放国外。 不然应用层逻辑的性能会受制于延迟 |
5 colordog OP @mhycy 例如,web+mysql 全部在日本,然后阿里云做反代,阿里云到日本的延迟是 180ms,这个用户使用会明显感觉访问慢么 |
7 defunct9 2017-05-01 09:40:23 +08:00 via iPhone 这个难道不能 mysql 做个主从,主阿里,从日本么 |
8 ioioioioioioi 2017-05-01 09:57:14 +08:00 MySQL 主从会很痛苦的。境外需要有网站服务器,国内的域名 proxy 到境外的服务器。我司也才最近这样调整的,生活美好多了。 |
10 marlboros 2017-05-01 10:04:48 +08:00 百度:日本服务器,然后开始 1-10 排名联系客服,提供测试 IP,开始 PING,哪个快就选择哪个。 |
11 ioioioioioioi 2017-05-01 10:05:18 +08:00 如果对客户 IP 访问没有限制,可以服务器放在国外,国内用 CDN 就可以了。 |
12 colordog OP @ioioioioioioi 你们怎么调整的,主从么?我遇到这个是数据坚决不能交给国内运营商,哪怕是境外运营的国内运营商,例如,某里,某鹅 |
13 marlboros 2017-05-01 10:05:50 +08:00 然后可以找一家免备案的 CDN 加速供应商 |
15 colordog OP @marlboros 目前测试的樱花的,找日本人买的,140-180ms,已经算快得了,但是如果只放数据库过去,国内这边做 web 直接读取数据库,网站速度仍然受到影响,而且很大 |
17 colordog OP @defunct9 咱能不考虑数据放阿里么,不管是不是主从,客户的需求是:数据库不允许给境内注册的企业。这是硬条件,所以说主从也不能提阿里 |
18 ioioioioioioi 2017-05-01 10:08:33 +08:00 @colordog 之前是双主,很痛苦,经常出现问题,后来改为服务器完全在国内,国内只是 proxy 到香港,香港 proxy 到美国,现在就非常爽了。如果你没有 IP 限制的话,可以服务器放国外,国内直接用 CDN,更简单、便宜。 |
19 o00o 2017-05-01 10:10:14 +08:00 数据库和 web 不要跨机房! |
20 colordog OP @ioioioioioioi 恩,我觉得这种方案可以考虑试试。 |
22 defunct9 2017-05-01 10:17:08 +08:00 via iPhone 噢,明白了。那就都扔境外。境内代理就好。用白山云的 cdn 也可,自己架个 nginx 也可 |
23 zjqzxc 2017-05-01 10:22:15 +08:00 国内服务器上个内存缓存或缓存数据库,写操作异步更新到国外的数据库 |
24 xingtian 2017-05-01 10:29:10 +08:00 网站跟数据库放国外,用 cdn 不就得了,国内的访问解析国内 ip,国外的访问解析国外 ip。 |
25 wangxiaodong 2017-05-01 10:33:37 +08:00 我用的是 Google Cloud Platform,分配了个台湾彰化县的固定 IP 地址,ping 值只有 50ms 多,域名也都转过去了,推荐大家使用。 Google Cloud Platform 云平台 300 美金免费体验教程 - https://url.openle.com/go#url=https://news.congci.com/-/content/google-cloud-platform-yun-pingtai-zhengnian-mianfei-tiyan |
26 caola 2017-05-01 12:22:45 +08:00 那建议你的网站做成前后端分离,前端放国内,后端放国外,所有内容通过 api 调用 |
27 moguv587 2017-05-01 12:38:27 +08:00 via iPhone 简单啊,网站和数据库都放境外,国内弄个反代,完美 |
28 maskerTUI 2017-05-01 12:51:09 +08:00 via Android 数据库和网站都放国外,国内搞个 iframe 或者反代什么的网站挂一下。 |
29 l9rw 2017-05-01 13:05:57 +08:00 阿里云香港给国内用,数据库放 google cloud |
30 swsh007 2017-05-01 13:10:00 +08:00 via Android 没这么玩的,数据库和 web 跨机房都慢,跨国境就别想了。建议做个国内版应付一下,国际版直接跳走比较好。 |
31 mytsing520 PRO 全部放境外,然后境内反代 |
32 mhycy 2017-05-01 13:47:59 +08:00 @colordog 假设你的 MySQL 服务器在香港,主服务器在国内,链路延迟在 20ms 页面 4 个查询,那么不计算查询时间与数据传输时间,在链路上需要消耗 20*4=80ms 的查询时间 这是在链路延迟 20ms 的情况下考虑的,而实际上要达到 20ms 延迟,国内服务器必然需要在广东省境内。 而北方用户访问的时候另外还有 40ms 的国内路由延迟需要计入。 总计 80+40=120ms 延迟。 能保证每个页面都只有 4 个查询而且数据量小到可以忽略不计么? 如果主服务器与数据库均在境外,那么 120ms 的链路延迟可以做到在祖国大西北覆盖整个东南亚的直连机房。 所以直接反代是最理想的选择。 (更别说境外的计算资源与带宽资源远比国内便宜,做反代就好) |
35 colordog OP @mytsing520 恩,现在看这是最好的方案了 |
36 colordog OP @swsh007 现在初步基本想反代了,还有不存在境外用户,用户就是国内的,但是数据库不放国内,客户要求,原因呢,呵呵。 |
38 colordog OP @wangxiaodong google 的,国内服务器都访问不到吧,好像阿里云服务器 ping cloud.google.com 是不通的。 |
41 jarodwang 2017-05-01 14:32:37 +08:00 via Android 服务器放广东,数据库放香港,两边找服务商提供 MPLS 或 L3 连接。 |
42 exiaohao 2017-05-01 14:40:02 +08:00 不差钱的话上 IEPL 啊 差钱就主从吧,国内读,写丢国外。不过这个不排除会有什么奇奇怪怪的问题 |
43 azuis 2017-05-01 14:47:08 +08:00 via iPhone 如果有备案的话,直接用阿里云的 CDN 就好了。源站和数据库放一起都放同一个机房。 |
44 yankebupt 2017-05-01 15:36:21 +08:00 via Android 不知库放国内但是高强加密,同时异步到境外满足要求不,会不会出什么样的问题......外行不懂所以打听一下,不知道查加密查的严不严.... |
45 Devmingwang 2017-05-01 16:12:59 +08:00 槽。 WEB+MYSQL 全放国外然后再来个 CDN 不就好啦?或者是找上海的阿里云反代。 |
46 wangxiaodong 2017-05-01 16:14:11 +08:00 @colordog Google 云主机管理后台通常要走 VPN,程序员基本功,但域名解析和主机网络跟 Google 能不能访问没关系,你只要将域名指向到台湾机房 IP 即可,你可以 ping 下我在台湾机房的网站: https://congci.com |
47 jsq2627 2017-05-01 16:29:13 +08:00 via iPhone azure 北京上海和 azure 国际东亚(香港)有专线的,比较稳定 |
52 colordog OP @yankebupt 高强度加密,牛啊 ,没那技术,而且人家注明了要物理放在外面,且不相信加密,一些交易数据如果被人把服务器拿走,啥加密啊,对于技术不牛来说 |
53 colordog OP @wangxiaodong VPN 知道,我以为 google 云上所有主机都被 qiang 了呢,原来只有 google 的域名啊,还有你的域名是台湾么,为啥 ip138 上说是美国呢,ping 确实不高 |
54 wangxiaodong 2017-05-01 17:00:19 +08:00 @colordog 换个 ip 在线查询库试试,我在 google 云选择的区域是 asia-east1,申请了 2 次就分配到了这个 104.155.x.x 开头的 ip 地址,台湾离大陆还是挺近的,你也可以不翻墙,通过 hosts 来解决访问 google 的障碍。 |
55 breeswish 2017-05-01 17:21:49 +08:00 azure 中国区和 azure 国际区有专线,带宽在 100Mbps 以上,理论上够用 |
56 akafeng 2017-05-01 17:31:25 +08:00 备案后不一定要放大陆啊, 你有备案号以后, 可以放大陆外的 |
57 jasontse 2017-05-01 17:38:52 +08:00 via iPad 不建议把数据库放那么远,这样后端逻辑服务器效率太低。能缓存的放在前端缓存是一样的。 |
58 MasterMonkey 2017-05-01 19:11:07 +08:00 via iPhone 移动 100M 或者 1G 宽带可以吗?移动连接国内和国际都超快!毕竟移动有移动国际的线路,没必要限制速度,就是可能偶尔不稳定! |
59 jarodwang 2017-05-01 21:11:38 +08:00 via Android @colordog 深圳到香港的 Direct 线路时延可控制在 12ms 左右,但北京过来有 100ms 以上的时延。 |
60 longquanwo 2017-05-01 21:17:10 +08:00 azure 没有比他家更好的了 |
61 msg7086 2017-05-02 00:53:28 +08:00 数据库不放国内好像是违法的?我也不清楚但是依稀记得新出台的法律有规定…… |
62 tadtung 2017-05-02 05:14:27 +08:00 你的客户要求好奇葩啊,,,做的黑产吧。。。 最佳方案是站点数据库都放在国外,日本或者西海岸都行。web 前端,用国内的阿里云反代就行,既然你备案了上国内的 cdn 也行。 web 和数据库最好不要分开,你 web 和数据库国内外分开,站点响应速度能快才怪。。 Sakura VPS 速度还行,,不过稳定性一般,电信常抽,,我自己建站主要还是用 linode 的。 |
63 mytsing520 PRO 这个客户是做什么网站的,要求如此奇葩 |
64 bleachbl 2017-05-02 09:43:07 +08:00 中华电信的 Hinet 不错 推荐 话说客户在国内 却要求数据库放国外 有点奇怪 |
65 sampeng 2017-05-02 15:34:00 +08:00 只有反代是最合理的选择。 分离 web 和数据库,最容易堵塞。 一般都有连接池,或者最大连接数。这个数肯定不会大于实际的网页访问的连接数的。如果分开了 web 和数据库。那最直接的反应就是连接池拥堵和最大连接数拥堵。恶性循环。。这就要去解决两个问题。。web 到服务器的延迟,以及产生拥堵怎么搞。 还有,反代丢包只是慢一点打开网页。那 web 和数据库连接丢包了会怎样呢?每天一到晚上梯子就谜之丢包。。。 反代只需要解决一个问题。。你代理机到服务器的延迟。。这个可不仅仅只是反代这么简单。 比如我们梯子用 vnet 做通道加速,我看了一下,我直接 ping 是 100ms。但加速后却只有 60ms 了。而且不丢包!! 这也可以用在反代上的,当然,流量会很贵。 |