日访问量 10 万的服务器结构应该怎么部署?

2016-07-20 01:39:13 +08:00
 DotKu

以下是我设想中的方案,求改善建议。

1. 保留现在的服务器位置
 
目前采用的是 West Oregon ,美国西部覆盖美国本土和中国,距离还是比较适中的。
 
2. API 服务器 - AWS M3.Medium x 1
 
用于数据读取操作和存储操作
 
3. 计算服务器 - AWS M1.Small x 1
 
用于每日的利率计算
 
4. Web 服务器 - AWS M1.Small x 1, AWS M1.Micro x 1
 
一台用于用户浏览量与操作,一台用于管理审核操作
 
5. 数据库服务器 - RD t2.medium
 
[!] 高风险: 目前数据库与应用使用同一台机子,非常容易出问题,应用服务器必须和数据库服务器分离。

6. 文件服务器 - S3
 
由于需要不少的图片存储, AWS S3 是比较好的选择方案。
11363 次点击
所在节点    Amazon Web Services
51 条回复
cevincheung
2016-07-20 01:49:24 +08:00
其实说来说去无非还是那几招。

CDN -> DNS Roll-Poling -> Nginx Proxy -> File & Dynamic Application -> Middleware -> Cache & Queue -> DB

至于几台服务器什么配置那要具体项目具体分析了吧。反正一切以横向扩展看齐。
gzelvis
2016-07-20 02:14:59 +08:00
10w 不算高啊, 前后端分离,图片用七牛之类的 cdn 就好
maxsec
2016-07-20 02:22:45 +08:00
日访问十万?单机+图片服务器够了
msg7086
2016-07-20 04:27:26 +08:00
不知道你说的访问量是什么概念。
我这边请求量一天 2m 的用个 i3 就能顶了。
notgod
2016-07-20 04:49:14 +08:00
这个看站点类型 如果密集型的 有必要考虑扩容问题

如果非密集计算型的这个级别 10 万 IP 100 万 PV
你那个架构搞复杂了

我日访问 25 万-30 万 IP 1000 万 PV 左右
Linode 3 个 VPS 解决问题

2 个 2G 内存 DB Master+Master 架构
1 个 4G 跑网站 nginx php-fpm
3 个 2G 反向代理
达拉斯覆盖美国全境
日本覆盖亚太区域 (因为中国流量基本没有 所以无所谓访问速度问题)
德国覆盖欧洲全境
3 个 2G 的反向代理 同时干了兼职 有 Redis 缓存集群 + Memcaced 集群
万事大吉 毫无压力

2x$10 + $20 + 3x$10 = $70/month 成本
gzelvis
2016-07-20 05:18:31 +08:00
@notgod 能加个好友吗?
chaegumi
2016-07-20 05:59:53 +08:00
@notgod
hi ,你这种方向代理放多个国家的域名是怎么绑定的
chaegumi
2016-07-20 06:01:17 +08:00
@notgod

hi ,你这种反向代理放多个国家的域名是怎么绑定的
notgod
2016-07-20 07:00:04 +08:00
@gzelvis 点我用户名 + 查看博客 qrcode 加我微信
@chaegumi 没理解你说的是什么
我这个类似于负载均衡的方案

架构这样
DNS 使用 Rage4 或 AWS 的 GEO 进行区域解析, 我现在主力是 AWS 了 网络很好

主数据网站 使用 backed.test.com
1.1.1.1 北美
反向代理站 www.test.com 2.2.2.2 欧洲
3.3.3.3 亚太

其实提高架构的性能
大部分问题瓶颈都在 mysql 上 这个需要极度优化好

遵循的原则
=================================================
1. 查询 能合并就合并, 去降低 sql 连接数的
2. 查询 能缓存的就缓存, 去降低 sql 请求,提高处理速度和命中率
3. 压缩 能压缩的都压缩, 用 CPU 性能去降低传输速度
4. 合并 能合并的资源 都合并 能降低 http 连接数 使用 nginx + ngx_pagespeed
5. 能禁止的都禁止, maja 那类的什么 SEO 用途和各种爬虫 一天能爬你几百 G 数据
chaegumi
2016-07-20 08:01:22 +08:00
@notgod
thanks
我的意思是,我的程序现在在阿里云上,做外贸网站,整站静态化,静态图片 css 已经走 cdn 了, 但是还是需要用户填询盘表单的提交到后台程序,国外不同地区的访客肯定会有访问不了阿里云服务器的情况是吧,这个程序不想部署到多台服务器,反向代理我知道,就是想了解下你的域名 dns 如何做的,我去了解下你说的 GEO 进行区域解析。
chaegumi
2016-07-20 08:03:40 +08:00
我想要达到的效果就是全世界不同地区的访客都可以正常提交表单数据
notgod
2016-07-20 08:18:45 +08:00
@chaegumi
你缺个 Cloudflare 外贸站的话 CF 可以解决 免费不要钱....
jhaohai
2016-07-20 08:47:43 +08:00
日访问才 10w ,单机能扛住的啊
tony1016
2016-07-20 09:18:47 +08:00
10w ,按每天 8 小时算,每秒也就 3 , 4 笔业务…… tomcat 吧
scys
2016-07-20 09:29:25 +08:00
10w ... 不要考虑负载问题,实现功能先
huluhulu
2016-07-20 09:42:47 +08:00
10w.....我都用 vultr 最便宜的那个 vps...足够
Symars
2016-07-20 09:46:54 +08:00
图片 cdn ,剩下的单机就能抗住
llhh
2016-07-20 09:49:55 +08:00
@notgod 大神没事儿可以加你微信吗?纯粹看看朋友圈……
ericls
2016-07-20 09:52:59 +08:00
每秒钟两个请求都不到 随便怎么都可以吧
idblife
2016-07-20 09:59:05 +08:00
首先,你要有 10w 访问量,等到你有的时候,自然就解决了。
一搬业务, linode 最便宜 vps+cdn 就能搞定

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

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

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

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

© 2021 V2EX