以下是我设想中的方案,求改善建议。
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 是比较好的选择方案。
1
cevincheung 2016-07-20 01:49:24 +08:00 1
其实说来说去无非还是那几招。
CDN -> DNS Roll-Poling -> Nginx Proxy -> File & Dynamic Application -> Middleware -> Cache & Queue -> DB 至于几台服务器什么配置那要具体项目具体分析了吧。反正一切以横向扩展看齐。 |
2
gzelvis 2016-07-20 02:14:59 +08:00
10w 不算高啊, 前后端分离,图片用七牛之类的 cdn 就好
|
3
maxsec 2016-07-20 02:22:45 +08:00 via iPad
日访问十万?单机+图片服务器够了
|
4
msg7086 2016-07-20 04:27:26 +08:00
不知道你说的访问量是什么概念。
我这边请求量一天 2m 的用个 i3 就能顶了。 |
5
notgod 2016-07-20 04:49:14 +08:00 1
这个看站点类型 如果密集型的 有必要考虑扩容问题
如果非密集计算型的这个级别 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 成本 |
9
notgod 2016-07-20 07:00:04 +08:00 3
@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 数据 |
10
chaegumi 2016-07-20 08:01:22 +08:00
@notgod
thanks 我的意思是,我的程序现在在阿里云上,做外贸网站,整站静态化,静态图片 css 已经走 cdn 了, 但是还是需要用户填询盘表单的提交到后台程序,国外不同地区的访客肯定会有访问不了阿里云服务器的情况是吧,这个程序不想部署到多台服务器,反向代理我知道,就是想了解下你的域名 dns 如何做的,我去了解下你说的 GEO 进行区域解析。 |
11
chaegumi 2016-07-20 08:03:40 +08:00
我想要达到的效果就是全世界不同地区的访客都可以正常提交表单数据
|
13
jhaohai 2016-07-20 08:47:43 +08:00 via iPhone
日访问才 10w ,单机能扛住的啊
|
14
tony1016 2016-07-20 09:18:47 +08:00 1
10w ,按每天 8 小时算,每秒也就 3 , 4 笔业务…… tomcat 吧
|
15
scys 2016-07-20 09:29:25 +08:00
10w ... 不要考虑负载问题,实现功能先
|
16
huluhulu 2016-07-20 09:42:47 +08:00
10w.....我都用 vultr 最便宜的那个 vps...足够
|
17
Symars 2016-07-20 09:46:54 +08:00
图片 cdn ,剩下的单机就能抗住
|
19
ericls 2016-07-20 09:52:59 +08:00 via iPhone
每秒钟两个请求都不到 随便怎么都可以吧
|
20
idblife 2016-07-20 09:59:05 +08:00
首先,你要有 10w 访问量,等到你有的时候,自然就解决了。
一搬业务, linode 最便宜 vps+cdn 就能搞定 |
22
9hills 2016-07-20 10:02:20 +08:00
为什么所有的服务都是单点?最少双份互备吧
|
23
AbrahamGreyson 2016-07-20 10:03:29 +08:00
微服务架构哦,不错呦。
|
24
21grams 2016-07-20 10:07:20 +08:00
10W 用个笔记本都行吧。
|
25
fredcc 2016-07-20 10:11:53 +08:00
既然都用 aws 平台了,为啥不按 aws 推荐架构做呢。 elb+多可用区 ec2+RDS ,全球区还可以用上 cloudfront 等
|
26
st2udio 2016-07-20 10:14:21 +08:00
10W 没什么需要考虑的吧
|
27
mytsing520 2016-07-20 10:16:54 +08:00
@fredcc CloudFront 表示访问质量渣渣
|
28
tinyproxy 2016-07-20 10:50:41 +08:00 via iPhone
@tony1016 虽说 10w 挺少,但你摊到 8 小时去有点不合适吧, 1111 流量摊到一年去也还好啊。。。
|
29
fredcc 2016-07-20 10:54:36 +08:00
@mytsing520 目前我用下来感觉还不错啊,你是指国内访问速度么?
|
31
jtacm 2016-07-20 11:05:02 +08:00
LZ 是说湾区中文网?
|
32
snnn 2016-07-20 11:22:44 +08:00 via Android
平均每秒 1 、 2 个请求?
|
33
lairdnote 2016-07-20 11:22:50 +08:00
数据库 用 aws 的 mysql , 感觉比单机好
|
34
2225377fjs 2016-07-20 11:37:00 +08:00
只是看 10W 的 日访问量的话,真的是很少。利率计算这种也只能说是轻量级的运算而已。。。具体还的看业务吧,要是有各种数据库的慢查询啥的,还是要好好考虑一下怎么设计业务。。。如果大多都是一些小型的运算业务, Small 就够了。
|
35
nine 2016-07-20 11:40:12 +08:00 2
青云 4 核 8G (高性能) + 1 核 2G postgresql (高性能) 跑 1000 万 /日,你参考下。 Rails 程序
|
36
mytsing520 2016-07-20 11:55:58 +08:00
@fredcc 国内的访问速度,你也知道现在 114 禁止解析 CloudFront
|
37
chairuosen 2016-07-20 12:11:05 +08:00
图片上七牛,不要自己存
|
38
fredcc 2016-07-20 12:22:34 +08:00
@mytsing520 所以我说是全球区才考虑啊, cloudfront 服务在中国区也没有啊
|
39
xhowhy 2016-07-20 13:20:51 +08:00
国内哦?
|
40
tinyproxy 2016-07-20 13:36:28 +08:00 via iPhone
@tony1016 我觉得访问量是用来衡量站点活跃度的,对于大多数开发人员来说,平均 QPS 跟 maxQPS 比较有参考意义
|
41
realpg 2016-07-20 13:45:56 +08:00
十万 IP ,这么点……
静态资源云存储 cdn ,动态内容一个稍微正常点的节点就完成了。如果可用性要求高,就三五个负载均衡的小实例,从版本库 clone 可以动态删减 @chaegumi 外贸这种我都搞了几百个了 对东南亚、美国加拿大澳洲主导: 主服务器丢 linode 上,静态资源 cloudflare ,如果主站不会被 DDOS ,已经包治百病 如果主要对欧洲,那么,全站 cloudflare 就行了 程序开个 github 私有库联动部署,备份用云服务自己的,自己国内的人登管理后台顶天慢一点也不会很慢,自己人的完全可以接受 |
42
robinshi2010 2016-07-20 14:53:25 +08:00
@notgod 求头像出处。
|
45
lightening 2016-07-20 16:33:24 +08:00
数据库用 RDS ,其他一个服务器 + CDN + 图片用 S3 。
以后需要时扩展就行了啊 |
46
lincanbin 2016-07-20 16:35:38 +08:00
10 万全平摊到白天,算起来一秒都没 3 个动态 requests ……
不知道我算得对不对? |
48
luojing 2016-07-20 17:16:38 +08:00 via Android
10w 一台云主机就可以了
|
50
hezhile 2016-07-21 09:38:04 +08:00
楼主你好,不知道你有没有研究过 aws 的 lamda 和 api gateway 。我感觉你的 api 服务器和计算服务器可能可以用它们来替换。 lamda 很便宜,而且扩展性很好。
aws 自己推出了一个叫 chalice 的框架,“ The python serverless microframework for AWS allows you to quickly create and deploy applications that use Amazon API Gateway and AWS Lambda.” https://github.com/awslabs/chalice 另外,这篇文章也可以参考:《谈谈 AWS Lambda 和 serverless architecture 》 http://www.36dsj.com/archives/54630 |
51
julyclyde 2016-07-21 16:32:56 +08:00
10 万访问量 /86400 秒,平均一秒才一个请求,峰值就算加俩零也就才 100 个
这根本不需要设计啊,随便怎么弄弄就够了 |