事情是这样的,由于 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 2017-05-01 13:20:26 +08:00
全部放境外,然后境内反代
|
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
chinafeng 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 2017-05-02 09:08:39 +08:00
这个客户是做什么网站的,要求如此奇葩
|
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 了。而且不丢包!! 这也可以用在反代上的,当然,流量会很贵。 |