版权声明:如有转载请求,请注明出处:http://blog.csdn.net/yzhz本文来自于2003JavaOne(http://java.sun.com/javaone/)上的一篇文章。我把它翻译成中文,有些不重要的部分我已略去。虽然是2003年的文章,但其中的J2EE设计方案还是值得我们去学习的,而且这个架构本身就是面向未来的。
eBay作为全球最大的网络交易市场赢得了市场的尊重,作为技术人员我们对其后台架构如何能够支撑起这个庞然大物都会感兴趣。每天十亿次访问量,6900万注册会员,1600万商品这些天文般的数字意味着它每天承受着巨大的并发访问量,而且eBay上大量页面都不是静态页面。
这篇介绍eBay架构的文章一定能对我们的项目设计和开发起到很好的指导作用。
eBay的架构是eBay的工程师和Sun的工程师共同设计完成的。
下面文章中斜体字是我的注释或者感想,其他的都是原文翻译。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
作者:Deepak Alur、Arnold Goldberg、Raj Krishnamurthy
翻译:杨争
详细了解Core J2EE Pattern可以查看此链接http://java.sun.com/blueprints/corej2eepatterns/Patterns/
目标:
通过本文,学习如何采用Core J2EE Patterns架构具有高度扩展性多层的J2EE应用。
作者:
Deepak Alur
- Senior Software Architect, SunPS program
- Co-author of Core J2EE Patterns
- Sun-eBay V3 Architecture—Team leader
Arnold Goldberg
- Lead Architect—eBay.com Platform
- Led V3 architecture, design and implementation
Raj Krishnamurthy
- Software Architect, SunPS program
- Sun-eBay V3 Architecture team—Key member
议程:
入门和Core J2EE Patterns
eBay.com三层架构的目标
关键架构和技术决策
eBay.com如何应用Core J2EE Patterns
结论
一、入门和Core J2EE Patterns
1、目标:
- eBay.com网站的架构
- 架构中模式的地位
- 使用 Core J2EE Patterns的好处
2、eBay介绍
(1)使命
1、全球交易平台
2、拍卖、定价、B2C、B2B
(2)统计数据
- 6900万注册会员
- 28000个分类,1600万商品
- 2002年营业额:148亿7千万美元
-全球社区
-每天十亿次访问量
- 1200多个URL
3、eBay旧的二层架构及其存在的问题
(1)ebay旧的二层架构
-集成在一起的两层架构(架构中各组件之间的耦合度高)
- 330万行C++ ISAPI DLL
-面向功能的设计
- Not for systemic qualities
(2)二层架构存在的问题
-阻碍商业创新(可扩展性不够)
-随着访问量增大,系统线性扩展性面临着挑战(无法通过仅仅增加硬件投入,扩充系统的支撑量)
-高额的维护成本
-不便于“重构”(代码很难通过重构来改善)
- Architects in constant Fire-Fighting Mode
4、2000年底开始三层架构改造
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><font size="3"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></path><lock v:ext="edit" aspectratio="t"></lock></font></shapetype><shape id="_x0000_i1025" style="WIDTH: 414.75pt; HEIGHT: 181.5pt" type="#_x0000_t75"><imagedata src="file:///C:%5CDOCUME~1%5Clxx%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image001.png" o:title=""></imagedata></shape>
<shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></path><lock v:ext="edit" aspectratio="t"></lock></shapetype><shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></path><lock v:ext="edit" aspectratio="t"></lock></shapetype><shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></path><lock v:ext="edit" aspectratio="t"></lock></shapetype>
系统向分层、松散耦合、模块化、基于标准的架构过渡
分享到:
相关推荐
Laravel开发-ebay 用于与易趣API交互的易趣包
eBay架构
ebay架构原则,架构演变历史及ebay的自动化
Laravel开发-ebay-legacy 此包是易趣交易API的一个层,使与易趣的交互更加容易。
电子商务调查研究报告----ebay.pdf
电子商务调查研究报告----ebay.doc
Laravel开发-laravel-ebay 这个包是php ebay sdk for laravel的包装器,用于自动执行所有配置并使skd随时可用。
了解Ebay的架构发展和开发流程。是读者清晰的使用Ebay的架构在实践中。
eBay的架构.rareBay的架构.rareBay的架构.rar
Laravel开发-ebay-5.1 用于与eBay API交互的Laravel包
ebay架构分析,是文档的Jpg截图,给需要的朋友们参考
eBay架构分析图1.JPG,eBay架构分析图1.JPG,eBay架构分析图1.JPG,eBay架构分析图1.JPG
电子商务,跨境电商,电商运营,售后客服必备资源
nodejs-ebay-api, 用于 node.js的[No longer maintained] eBay API客户端 Node.js 客户端 我不再维护这个 MODULE 了。 如果有人有一个活动的fork,并且感兴趣的话,请告诉我,我将转移,项目。 介绍这个 MODULE 目的...
16-产品经理工作心得分享-ebay.pptx
关于ebay的存储及架构内容的一些介绍,从最初的版本,到现在到支持上亿用户,上亿次请求的发展过程。
电子商务调查研究报告-ebay.doc
全站跨平台系统补丁自动化部署-eBay梅岑恺.pdf