新手想建个 B2C 站,可能上万并发,求经验。

2015-08-28 23:46:56 +08:00
 benmaowang
帮朋友做的。需求很简单,就一件商品,顶多有几个颜色之类的属性可选,用户选好后可以支付宝、微信在线支付。后台要能管理商品和订单。不需要发货,所以无需管理物流状态。
这种需求基于哪种开源项目开发比较方便?如果要外包的话大概什么价位?要是不贵那就直接建议他找外包好了,我不是这行的估计强行上马也做不好。可能会有人推荐淘宝开店卖商品,这个不是太适合。

另外,可能每个月有那么几天会高并发(运气好时,并不一定有),其余时间大多空闲,这样的情况用什么云服务比较划算?能撑住峰值上万并发,最少需要什么样的服务器资源?

还有,电商网站备案跟一般企业网站有没什么不一样的地方?
7671 次点击
所在节点    程序员
61 条回复
mclxly
2015-08-29 08:52:34 +08:00
如果真的只是销售一件商品,网站前后台 5w ,调优(高并发) 5w 。

这种需求用 zencart 、 opencart 、 magento 这些太笨重,直接用 web 框架二次开发。
nevin47
2015-08-29 09:02:14 +08:00
难道是买美版港版手机的?
zado
2015-08-29 09:05:11 +08:00
服务器的话,我觉得选青云非常合适。不过青云也比最开始时慢了,可能是用户多了的缘故。
gamexg
2015-08-29 09:09:24 +08:00
楼主想要简单的?
楼主直接弄个静态的企业网站,付款走支付宝接口,订单信息直接备注到支付宝付款信息里面。客户下订单时网站别维护订单信息,订单信息用支付宝管理。
这样前台部分就完全是静态内容了,多机负载均衡、 CDN 都好处理些。

对了,有用过 SAE 之类的云服务的吗?感觉这种需求扔给 SAE 之类的更合适。
realpg
2015-08-29 09:21:17 +08:00
做过三次这种项目。

1.卖产品的类似小米那种,不过一年抢购一两次的,不抢购期人都没有。
2.上大学时候给学校改的选课系统,一年两次几万并发整站崩溃,平时访问量 0 。
3.跟大型电商对接的他们导入流量我们抢购产品的一个系统。有活动就一堆人薅羊毛,没活动都没人来。

对于这种项目给你建议是:
二次开发就算了,那些重型商城扛不住这么高的访问量,必须一次开发否则都不匹配这种场景。找个轻量框架直接开发往死里优化就行了。

架构上:
现在有云服务,这是很大的优势,以前搞这玩意才头疼。
反正就几个小时,以阿里云为例,买一个最低配的机器,买一个最低配的 RDS ,然后上个 redis 做缓存做队列,把结构搭起来。

然后等快开抢的几个小时时候,按小时付费买十台服务器,一个负载均衡,买一个内存 48G 的 RDS , REDIS 买大容量,布置一个集群顶住这几个小时

结束后,直接把数据 dump 出来或者订单导出 EXCEL ,恢复到平时的最低配机器维持网站存在就行了……

程序逻辑上,如果想进一步降低硬件需求,可考虑 node.js 什么的做异步通知结果的,甚至做队列做排队反正不实时的结合缓存就能降低很多硬件需求了。

做这个 如果数据库优化好,缓存用得好,难度并不大。
wy315700
2015-08-29 09:25:20 +08:00
这个问题的难点在并发一万,而不是商城。
em70
2015-08-29 09:25:26 +08:00
被媒体各种创业英雄报道给毒害了,动不动把自己想成武侠小说的主角。网站建设都是小事情,你从来没考虑推广,就认为成千上万的人会蜂拥而至,推广成本可能数十倍于网站,而且 90%可能花了钱也没有人来。

无论从哪方面说,对做生意都毫无经验,先好好打工吧。
free9fw
2015-08-29 09:35:55 +08:00
做个淘宝页面简单,做个 1W 并发就呵呵哒了
initdrv
2015-08-29 09:48:07 +08:00
@realpg 感觉说得很具体,很专业,这是经验之谈,感谢分享!
frankzeng
2015-08-29 09:54:39 +08:00
做好静态的展示页面,要买跳去淘宝店买,让淘宝帮你搞定这 1 万并发加支付吧。
kalintw
2015-08-29 10:00:12 +08:00
楼主是想,在某个时间点,搞类似小米抢购之类的吧?
既然业务和产品单一。做个静态的 landing page ,抽出、精化、压缩业务,让需要动态调用后台的逻辑尽量少。这样,网站程序会很简单,应付并发,你只需在负载均衡和服务器数量上下功夫。
realpg
2015-08-29 10:12:59 +08:00
@initdrv
其实吧,学校选课那个才逗比呢……
校内系统没有按小时付费的硬件……那时候也没有云服务。

原来是个 JAVA 的外包的本地大软件开发商做的程序,我们的光荣记录是早晨 8 点开始选课,不限登陆不限访问选完为止,到晚上 9 点还没选完……一天系统基本都是崩溃着了,学校也就万八千人,但是大家拼命 F5 的压力也很变态。
后来用世界上最好的语言,挂了个轻型框架给改写了,但是仍然模拟测试压不住这么大访问量,学校也不可能给这个一年两次的项目上个八台机器的集群。

有一次看到那种触摸屏一体机,里面是个 CF 卡固化个写死的 LINUX 镜像,释放到 RAMDISK ,然后只要 CF 卡不断克隆出来的都一样得到灵感。

固化了一个精简的基于某种学校采购了很多的 DELL 服务器硬件的 LINUX-RAMDISK 系统到 U 盘启动运行(这不是我的能力,学校的某个老师帮我实现的),里面内置一个 webserver 和 php ,数据库固化连接到总 MYSQL ,然后在校内 DNS 坐了 N 个
xuanke*.*.edu.cn


等到开始选课之前,网络中心下了个通知(老师跟我关系好没说的),选课时校园网拥堵厉害,趁着这个时间学校机房进行网络改造,内部系统停用,然后借机征用机房的一堆各种乱七八糟三十多台 DELL 服务器用 U 盘启动那个 LINUX 自带了 webserver ,相当于做了个多机负载,那时候还不会做负载分配器……

在校园网总入口作了 30 个入口, xuanke1~xuanke30

然后学校有史以来第一次,选课只用了 50 分钟就全校搞定了……

这 TMD 是不是按需使用的云服务的雏形……
ljbha007
2015-08-29 10:43:01 +08:00
@realpg 人肉负载均衡 哈哈哈哈
subpo
2015-08-29 10:45:56 +08:00
有赞啊,一分钱不要
jakehu
2015-08-29 10:50:41 +08:00
php + mysql + redis 做个类似小米或者魅族排队抢购 妥妥的
lovedboy
2015-08-29 11:11:44 +08:00
@realpg 教务系统几万并发,是在选课的时候吗?大学多少人?
initdrv
2015-08-29 11:13:58 +08:00
@realpg 大牛,你们已经走在云的最前端了!以后是云技术的中坚力量,加油!
yuewolf
2015-08-29 12:17:54 +08:00
单品的话,就自己写吧,用现成的 CMS 不太好。

@lovedboy 选课 F5 厉害,有 BT 按着几分钟不动。越慢在线人越多……
gs038538
2015-08-29 12:39:05 +08:00
估计楼主搞错了并发的意思。
楼主确认是同事有 1W 人访问么?
还是一天有 1W?
realpg
2015-08-29 12:41:58 +08:00
@lovedboy 大学一万五千多人,最后选课的学生数当时有个统计好像是一万一也不一万二左右,记不清了,肯定是超过一万一点。
关键是这帮 F5 党要了亲命了……稍微卡一点没看到界面就 F5


@yuewolf
您是行家, F5 要命啊……
当时还为了测试一下到底需要多少机器,是这么开放的
首先 开放 10 个入口
xuanke1~xuanke10

xuanke11~xuanke30 随机 redirect 到 xuanke1~xuanke10

然后发现不行爆卡,然后开放了 11~15 ,依然爆卡

最后开到 30 才基本保证可用性,也有点坑,但是有一点运气就能报上课 后面实在没有机器了 就三五个低配置的做最后备份怕这些都挂了然后搞分段开放

当时的 apache 还要经常性重启一下,总有被堆死的,但是也在 50 分钟后完成了全部任务
到 50 分钟时候,基本就没大量访问量了,剩下的都是些不着急无所谓的人了,撤掉了全部临时机器,就剩一个机器就能正常运行了

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

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

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

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

© 2021 V2EX