闪购网站Gilt.com是一个新生的电子商务模式,其特点是在几秒钟内流量爆棚100倍,每天大概持续15分钟,这家网站的首席架构师Eric Bowman谈了如何从Ruby On Rails迁移到Scala的感受,大意如下:
flash-sales这种闪存销售模式决定了必须建立一个能够支持这种突然爆发的系统。我们的解决方案是基于分布式架构开发数百个Scala微服务。
我们不会认为开始使用Rails是范了一个错误,毕竟Rails是非常棒的,使我们能够灵活地快速发展,但是后来我们又不得不使用Play框架再做一遍,因为Play框架更易于扩展伸缩。
从 2009到2011 Gilt增长得非常快速,因此我们不得不扩展我们的系统,开始使用Java,但是它逐步增长成铁板一块的整体式(monolithic)系统,我们的代码越来越难于维护和扩展,从性能和可扩展性两个方面看我们还是必须工作在JVM上,2011年采取了Scala,我们不断从其灵活简单中受益,也得益于Typesafe的Reactive平台如Play Framework, Akka 和 sbt.
微服务在很多方面对Gilt产生了好处,起初的Rails应用也是一种铁板一块整体式monolithic系统,这种系统架构引入了复杂的依赖,意味着很长的测试循环和不可预期的性能影响,而使用微服务,我们能在不相干的服务之间实现隔离,保持我们的尽可能简单快速.它也开创了团队内部端对端的品质开发质量,这不仅能够更加明确责任(一个微服务一个人开发),而且让开发者更加轻松开心,他们看得到他们的工作成果,会很有成就感(整体式系统则是自己开发的一个功能需要和别人协调确认,不能立即会有成就感)。
最后,Eric Bowman谈到了从RoR等开源项目上受益匪浅。
[该贴被banq于2014-05-18 10:09修改过]从Gilt这种迁移我认为原因有两个:
闪购网站Gilt.com是一个新生的电子商务模式,其特点是在几秒钟内流量爆棚100倍,每天大概持续15分钟,这家网站的首席架构师Eric Bowman谈了如何从Ruby On Rails迁移到Scala的感受,大意如下:
flash-sales这种闪存销售模式决定了必须建立一个能够支持这种突然爆发的系统。我们的解决方案是基于分布式架构开发数百个Scala微服务。
我们不会认为开始使用Rails是范了一个错误,毕竟Rails是非常棒的,使我们能够灵活地快速发展,但是后来我们又不得不使用Play框架再做一遍,因为Play框架更易于扩展伸缩。
从 2009到2011 Gilt增长得非常快速,因此我们不得不扩展我们的系统,开始使用Java,但是它逐步增长成铁板一块的整体式(monolithic)系统,我们的代码越来越难于维护和扩展,从性能和可扩展性两个方面看我们还是必须工作在JVM上,2011年采取了Scala,我们不断从其灵活简单中受益,也得益于Typesafe的Reactive平台如Play Framework, Akka 和 sbt.
微服务在很多方面对Gilt产生了好处,起初的Rails应用也是一种铁板一块整体式monolithic系统,这种系统架构引入了复杂的依赖,意味着很长的测试循环和不可预期的性能影响,而使用微服务,我们能在不相干的服务之间实现隔离,保持我们的尽可能简单快速.它也开创了团队内部端对端的品质开发质量,这不仅能够更加明确责任(一个微服务一个人开发),而且让开发者更加轻松开心,他们看得到他们的工作成果,会很有成就感(整体式系统则是自己开发的一个功能需要和别人协调确认,不能立即会有成就感)。
1. Node.js和Play框架倡导的微服务。
微服务这种架构使得维护拓展方便,打破了原来Java和Rails的铁板一块的整体式系统,这种微服务架构特点是RESTful接口+微服务。而传统Java和Rails是一种MVC+服务,为什么MVC+服务容易导致铁板一块的系统呢?MVC是一种面向前端的模式,当你使用这种组合时,你的重点就不免放在MVC的实现上,“服务”变成一种附加的次要的为MVC服务的架构,而轻量的RESTful接口使得我们重点又回到“服务”上,我们可以专注将我们的服务设计成一种微服务。
2. Node.js和Play框架倡导的异步Reactive编程。
异步编程最大的特点是吞吐量大,延迟小,因为没有堵塞,这就容易挖掘现有硬件和操作系统等底层系统的潜力,同样的成本投入,异步系统要比传统铁板一块的同步系统更能应付爆发式涌潮的瞬间大流量。
异步编程完全颠覆了传统Rails和Java Spring的顺序编程模型,具体可参考:http://www.jdon.com/46372,这个贴虽然使用了Node.JS作为异步编程案例说明,同样也适合Scala的Play框架和Akka的异步Reactive编程。
http://www.jdon.com/46381
相关推荐
在小米闪购网站中,开发者会学习如何利用这些元素构建出清晰的商品展示和导航结构。 2. CSS样式设计:CSS负责网页的外观和布局。在这个项目中,学习者将接触到选择器(类选择器 `.class`,ID选择器 `#id`,元素选择...
精品商业计划书2020-”依依贝”超低折扣全球各大母婴品牌限时特卖闪购网站商业计划书.ppt
通过仿制小米闪购首页,他们将学习到如何将HTML、CSS和JavaScript整合在一起,创建一个功能完整的网页。这有助于提高他们的编程技能和问题解决能力。 5. **文件结构与版本管理**:虽然没有具体提及,但一个好的项目...
此外,还需掌握颜色搭配、字体设置、布局管理(如网格系统、Flexbox或Grid)、动画效果等技巧,以营造类似小米闪购网站的视觉体验。 3. JavaScript交互功能:JavaScript是实现网页动态性的关键,它能够处理用户输入...
【闪购模块设计详解】 1. **背景** ...综上所述,上品折扣的闪购模块设计涵盖了从活动管理、商品选品到用户参与的全过程,并在设计中考虑了代码复用和数据库优化,以提升整体运营效率和用户体验。
根据小米商城制作的一个单页面demo,主要涉及的知识点是HTML与CSS,JavaScript代码较少,页面运用了flex与grid布局,demo在上传资源前一天完成,应有些地方可以再做些改进,可供参考,有任何改进意见欢迎讨论,共同...
闪购时代,快意生活-南都-美团-201812.pdf
美团&南都-闪购时代,快意生活.pdf
通过以上分析,我们可以看到"品牌闪购.zip"这个压缩包不仅涉及到基础的文件压缩技术,还可能关联到网络技术、营销策略、数据管理和法律等多个方面的IT知识。对于IT从业者来说,掌握这些技能和知识是提升工作效率和...
标题中的“聚美优品混合云助力闪购提速”揭示了这个话题主要涉及的是电子商务公司聚美优品如何利用混合云技术提升其闪购业务的性能和效率。在这个主题下,我们可以深入探讨以下几个IT领域的关键知识点: 1. **混合...
新版聚闪购(3).rp
同时,红美商城的运营流程包括招商洽谈、商品拍摄编辑、物流客服等一系列环节,确保了商品从入库到发货,再到退换货处理的顺畅进行。 总结来说,红星美凯龙电商的核心在于红美商城,它巧妙地将传统零售与电子商务...
在本项目中,“HTML+CSS实现小米闪购网基础模块”是一个针对前端初学者的教程,旨在教授如何使用HTML和CSS这两种基础的Web开发技术来构建一个类似小米闪购网的网页。通过这个实践项目,学习者将能够掌握网页布局、...
具体到"秒杀闪购软件 v7.9.15",这很可能是该应用的主程序文件,用户可以通过安装这个文件来使用软件的所有特性。 关于秒杀闪购软件的知识点: 1. **秒杀机制**:秒杀是一种营销策略,商家在特定时间提供极少量...
美团闪购:2023即时零售个人洗护品类白皮书.pdf
考虑到"教育教学"标签,金樽闪购手机版可能有专门的板块或功能,如: 1. 学习中心:提供购物攻略、消费知识,帮助用户成为更精明的消费者。 2. 专家讲座:邀请行业专家进行直播讲解,解答消费者疑惑。 3. 视频教程...
在实际的“小米闪购”项目中,开发者可能还会涉及到商品列表的展示、轮播图、评分系统、购物车功能等复杂组件的实现。这些都需要综合运用HTML、CSS和JavaScript,以及对用户体验和性能优化的理解。通过这个项目,你...
### 2022年即时零售平台模式及京东到家美团闪购对比分析报告 #### 一、即时零售概览 ##### 定义与特点 即时零售是一种新兴的零售业态,其核心特点是“万物到家”,能够实现货物在一小时内快速送达至消费者的手中。...
要买车原型设计201503011(新闪购设计)