一天十亿次的访问-采用Core J2EE Pattern架构的J2EE 系统

core j2ee patterns 2nd editioin 核心的J2EE设计模式 立即下载

目标:

通过本文,学习如何采用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年底开始三层架构改造

系统向分层、松散耦合、模块化、基于标准的架构过渡


5、ebay 架构的改造是基于下面这本书介绍的模式

core J2EE Pattern 最佳实践和设计策略第二版,sun官方网站也提供core J2EE Pattern,见

http://java.sun.com/blueprints/corej2eepatterns/Patterns/


该书介绍了21 种J2EE设计模式,我们可以把他们归类到三层中。

(1)、表示层的设计模式:

- Intercepting Filter (X)

- Front Controller (X)

- Application Controller (X)

- Context Object (X)

- View Helper

- Composite View

- Service To Worker (X)

- Dispatcher View

带(X)表示这些设计模式在eBay.com的架构中采用了。


(2)、商业逻辑层的设计模式:

- Business Delegate

- Service Locator (X)

- Session Facade

- Application Service (X)

- Business Object (X)

- Composite Entity

- Transfer Object (X)

- Transfer Object Assembler (X)

- Value List Handler (X)

带(X)表示这些设计模式在eBay.com的架构中采用了。


3、集成层(也称为数据访问层) 设计模式:

- Data Access Object (X)

- Service Activator

- Domain Store (X)

- Web Service Broker (X)

带(X)表示这些设计模式在eBay.com的架构中采用了。


二、ebay三层架构的目标

1、目标

高可用性、高可靠性、可线性扩展,建立实现系统的无缝增长。

高开发效率,支持新功能的快速交付。 

可适应未来的架构,应变将来商业的更新需求。

ebay的系统可用性2002年已到了99.92%.(令人叹服),每季度网站新增十五个重大功能,

每个星期将近3万行代码在修改,3个星期内可以提供一个国际化版本。

 

2、为了可适应未来的架构,ebay采用了下面的做法

采用J2EE模式

Only adopt Technology when required

Create new Technology as needed

大量的性能测试

大量的容量计划

大量关键点的调优

Highly redundant operational infrastructure and the technology to leverage it

 

3、为了实现可线性扩展,ebay采用了下面的做法:

(1)       合理地使用server state

(2)       No server affinity

(3)       Functional server pools。

(4)       Horizontal and vertical database partitioning。

 

ebay架构采用了服务器分块化的概念,每台服务器上的应用与它的use case有关,即server pool中的一部分服务器专门用于登陆,一部分服务器专门用于显示商品信息。毕竟不同use case访问数据库的方式不同,比如“显示商品信息”use case只是只读操作。而且由于是只读操作,数据库的压力会比较低,我可以只采用几台服务器来承担这部分操作,而更多的服务器用于读写操作多的use case,这样合理地使用服务器资源。

由于不同的应用放在不同的服务器上,这里就涉及到用户状态的复制问题。这就是第一条ebay 要求合理地使用server state 的原因,就我所知,ebay 的用户状态只有很少保存在session 中,ebay 把用户的状态放到了数据库和cookie 中。

4、为了使得数据访问可线性扩展

(1)       建模我们的数据访问层

(2)       支持Support well-defined data access patterns

Relationships and traversals

本地cache和全局cache

(3)       定制的O-R mapping—域存储模式

(4)       Code generation of persistent objects

(5)       支持lazy loading

(6)       支持fetch sets (shallow/deep fetches)

(7)       支持retrieval and submit (Read/Write sets)

      

5、为了使数据存储可线性扩展,eBay采用了下列做法

(1)商业逻辑层的事务控制

只采用Bean管理的事务

Judicious use of XA

数据库的自动提交

(2)基于内容的路由

运行期间采用 O-R Mapping ,找到正确的数据源

支持数据库的水平线性扩展

Failover hosts can be defined

(3)数据源管理

动态的

Overt and heuristic control of availability

如果数据库宕机,应用可以为其他请求服务。


6、应变未来采用的技术

(1)消息系统

子系统之间、数据库之间松散耦合

J2EE的Message Driven Beans

(2)SOAP

对于外部开发者和合作伙伴,通过可用的工具和最佳实践来平衡我们的平台

采用SOAP 来标准化不同eBay应用之间进程内部的通信

采用SOAP满足我们的QoS需求


四、将J2EE的设计模式应用到eBay中

    介绍了三个 Use cases 例子,“查看账号”,“查看商品”,“ eBayAPI ”,介绍了这三个 use case 如何采用 J2EE 的设计模式实现其设计。









Core J2EE Patterns(英文版) J2EE 核心设计模式。Interceptiong Filter、Service Locator 、BUsiness Delegate 等。 立即下载

相关推荐

Core J2EE Patterns(Second Edition)

真的能打开,是.chm格式的,别的地方已经很难找了 自己下载分快不够了,才来赚点分,我也不贪心,就3分 谁觉得值的或者用得着的就下

一天十亿次的访问-eBay架构(二)

版权声明:如有转载请求,请注明出处:http://blog.youkuaiyun.com/yzhz5、eBay架构的改造是基于下面这本书介绍的模式core J2EE Pattern 最佳实践和设计策略第二版,sun官方网站也提供core J2EE Pattern,见http://java.sun.com/blueprints/corej2eepatterns/Patterns/ 该书介绍了

杨争的专栏 4858

J2EE核心模式 Core J2EE Patterns 中文版 part1 of 2

中文版压缩成2卷,这是第一卷。   本书讲解使用J2EE核心技术实现企业应用过程中的模式、最佳实践、设计策略以及经过验证的解决方案,涵盖了JSP、servlet、EJB、JMS等技术,其中J2EE模式目录包括21个模式以及大量策略,帮助读者迅速熟练掌握J2EE技术,从而构建出健壮、高效的企业应用。本书是计算机应用开发人员、架构师、技术经理等人员的必备参考书。

Core J2EE Patterns - Data Access Object

In computer software, a data access object (DAO) is a pattern that provides an abstract interface to some type of database or other persistence mechanism. By mapping application calls to the persistence layer, the DAO provides some specific data operations

来啊 快活啊 3907

Core J2EE Patterns

Core J2EE Patterns

J2EE核心模式(Core J2EE Patterns)

关于J2EE设计模式的经典著作,由SUN资深工程师经验写就。

J2EE 核心模式(Core J2EE Patterns)学习随心理解、随手记录(五)

业务对象:利用对象模型把业务数据和业务逻辑分离开来。业务对象在最前端(客户端)和最后端(数据资源)都会进行业务数据形式的转化。业务对象的实现通常有两种方式:POJO + JDO 或者 Entity Bean + BMP/CMP。业务对象包含业务逻辑和业务状态。 J2EE系统中面向过程向面向对象转变有时甚至仅仅区别于最初的一念之差。没有什么是绝对的事情,如果业务非常简单,客户端通过浅浅的显示层,直接访问持久层、甚至数据资源存储中业务数据,整个过程中,其结构都是依据客户端所需数据的获取过程来完成的,是典型的面

四火专栏 1354

C#与发那科机器人通信实战:从SDK配置到机械臂控制

本文详细介绍了如何使用C#与发那科机器人进行通信,从SDK配置到机械臂控制的完整实战流程。内容包括环境准备、通信连接建立、机械臂运动控制、异常处理与状态监控,以及高级功能实战,帮助开发者快速掌握工业机器人编程技术。

weixin_42524276的博客 459

J2EE 核心模式(Core J2EE Patterns)学习随心理解、随手记录(汇总帖)

J2EE 核心模式(Core J2EE Patterns)学习随心理解、随手记录(一) J2EE 核心模式(Core J2EE Patterns)学习随心理解、随手记录(二) J2EE 核心模式(Core J2EE Patterns)学习随心理解、随手记录(三) J2EE 核心模式(Core J2EE Patterns)学习随心理解、随手记录(四) J2EE 核心模式(Core J2EE Patterns)学习随心理解、随手记录(五) J2EE 核心模式(Core J2EE Patterns)学习

四火专栏 1692

本地AI语音生成与配音工作台Pandrator:从TTS到RVC的完整实践指南

语音合成(TTS)技术通过深度学习模型将文本转换为自然语音,其核心原理涉及声学建模与波形生成。这项技术不仅提升了人机交互体验,更在内容创作领域展现出巨大价值,广泛应用于有声书制作、视频配音、虚拟助手等场景。本文聚焦于一个集成了XTTS-v2、RVC等先进模型的本地化AI语音工作台——Pandrator,它通过模块化架构将语音合成、声音克隆、音频转录与翻译等流程无缝整合,为用户提供了一个图形化、可定制的完整解决方案。文章深入解析了其基于TTS与RVC(Retrieval-based Voice Convers

weixin_42676876的博客 340

西门子smart能搜到cpu但连接当前IP地址失败

将ip地址改到同一网段 本机为192.168.1.119就是192.168.1.1网段,但plc在192.168.0.1网段,所以显示ip连接失败,改为同一网段192.168.1.xxx即可(为避免ip冲突尽量改到200往后最大255)如果显示这一步,那么你的物理连接是没有问题的,应当是plc和电脑并不在同一网段导致的问题。输入ipconfig 查看本机网段与plc是否为同一网段。此电脑就不在同一网段所有造成通讯失败,接下来解决这个问题。win+r打开运行,打开cmd。再次尝试,如果还是报错,那么。

weixin_62678581的博客 9866

采用Core J2EE Pattern架构的J2EE 系统,一天十亿次的访问

议程: 入门和Core J2EE Patterns eBay.com三层架构的目标 关键架构和技术决策 eBay.com如何应用Core J2EE Patterns 结论 一、入门和Core J2EE Patterns 1、目标: - eBay.com网站的架构 - 架构中模式的地位 - 使用 Core J2EE Pa...

网络太平洋--屠龙专栏 243

从零到一:基于STM32F103C8T6与HAL库的磁悬浮电赛装置实战解析

本文详细解析了基于STM32F103C8T6微控制器与HAL库,从零构建磁悬浮装置的完整实战方案。文章深入剖析了硬件设计中的线圈布局与“反向串联”巧思,以节省PWM资源;并阐述了采用三闭环PID控制算法的软件实现,结合Keil开发环境与HAL库进行工程搭建与调试。该方案为电子设计竞赛(电赛)提供了高可行性的参考,是嵌入式软硬件综合实践的优秀范例。

weixin_29169505的博客 274

一天十亿次的访问-采用Core J2EE Pattern架构的J2EE 系统 - zt

目标:通过本文,学习如何采用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- L...

huangxx 153

Autosar诊断实战系列07-Dcm之0x19 06扩展数据配置及工程问题讨论

19 06扩展数据如何配置?如果某DTC没有出现过故障扩展数据该如何响应?

initiallizer的博客 1704

SAP ABAP CDS View 里的日期函数

摘要:本文系统介绍了ABAP CDS日期函数在企业级应用中的关键作用,包括账龄计算、合同续期等业务场景。重点解析了DATS_IS_VALID、DATS_DAYS_BETWEEN等核心函数的语义和使用边界,特别强调on_error四种异常处理策略的选择逻辑。针对系统日期获取,对比了经典CDS的参数注入和View Entity会话变量两种方式。文章还提供了完整可运行的示例代码(包含CDS视图和ABAP程序),帮助开发者快速验证不同版本下的函数行为差异,确保在实际项目中正确应用这些日期处理函数。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 379

一天十亿次的访问-eBay架构(一)

版权声明:如有转载请求,请注明出处:http://blog.youkuaiyun.com/yzhz本文来自于2003JavaOne(http://java.sun.com/javaone/)上的一篇文章。我把它翻译成中文,有些不重要的部分我已略去。虽然是2003年的文章,但其中的J2EE设计方案还是值得我们去学习的,而且这个架构本身就是面向未来的。eBay作为全球最大的网络交易市场赢得了市场的尊重,作

杨争的专栏 7253

数据服务:数据服务框架Magic-API 介绍及实践

接口快速开发框架 基于Java的接口快速开发框架,编写接口将通过magic-api提供的UI界面完成,自动映射为HTTP接口,无需定义Controller、Service、Dao、Mapper、XML、VO等Java对象即可完成常见的HTTP API接口开发 。在线页面快速开发平台 基于 vue 的在线页面快速开发平台,主要把所有的 vue 代码都改为在线配置,最终获得一个 json 格式的页面新一代爬虫平台 基于Java实现的新一代爬虫平台,以图形化方式定义爬虫流程,不写代码即可完成爬虫。今天给大家安利一

GIS摆渡人 2063

一天十亿次的访问-eBay网站服务器架构

一天十亿次的访问-eBay架构(一) 本文来自于2003JavaOne(http://java.sun.com/javaone/)上的一篇文章。我把它翻译成中文,有些不重要的部分我已略去。虽然是2003年的文章,但其中的J2EE设计方案还是值得我们去学习的,而且这个架构本身就是面

首席技术执行官CTO(Chief Technology Officer)|技术总监--邓斌博客 2713

基于深度学习YOLOv8的PCB板缺陷检测系统

基于YOLOv8的PCB板缺陷检测系统,可以有效提高PCB生产过程中的检测效率。未来,我们可以进一步优化模型,结合更多的数据增强策略和先进的网络结构,以适应更复杂的生产环境。为了进行训练,理想的数据集应包含多种不同缺陷类型和不同背景的PCB图像。YOLOv8需要的数据格式为每个图像一个标签文件,每个标签文件包含缺陷的类别及其边界框坐标。运行该界面时,用户可以通过点击按钮选择图像,随后系统将自动检测图像中的PCB缺陷并显示结果。训练完成后,可以使用训练好的模型进行推理,检测新的PCB图像中的缺陷。

YOLO 1070

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

“那本”J2EE书——《J2EE核心模式》(第二版)译者序

“那本”J2EE书刘天北 熊节(原文刊登于《中华读书报》2005年2月23日号)  翻开这本《J2EE核心模式》,你首先就会注意到软件方法论领域的两位大师GradyBooch和MartinFowler撰写的序言。在这样两份序言后面再附上一篇“译序”,这个念头本身就足够荒谬和僭越,不啻于在莎翁之后再写一出关于丹麦王子复仇的剧本。大师们的判断是中肯而毫不含

透明思考@优快云 9158

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

上一篇: 胡侃学习计算机--理论之外-From南大小百合
下一篇: 处理日常事务的 Linux 程序和它们的配置
lphpc
博客等级 码龄22年 32粉丝 86原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值