iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >eBay的网站架构有哪些技术特点
  • 269
分享到

eBay的网站架构有哪些技术特点

2023-06-10 10:06:37 269人浏览 泡泡鱼
摘要

本篇内容介绍了“eBay的网站架构有哪些技术特点”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!eaby技术架构变迁ebay的系统架构的变迁主

本篇内容介绍了“eBay的网站架构有哪些技术特点”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

eaby技术架构变迁

ebay的系统架构的变迁主要经历了4个阶段,下面一幅图展现了ebay系统架构变迁的时间表

在ebay的V1版本,ebay采用的是FREEBSD + APACHE + PERL +DGBM,这是一个比较原始的模型,而且相对比较简单,操作系统,应用服务器WEB服务器 以及 数据库服务器都是在同一台机器中,网络结构在物理上只有一层。整个网站有四个域名,每个域名对应不同的应用,每组应用对应一台服务器。
eBay的网站架构有哪些技术特点

图表 1 ebayV1系统架构
随着业务量以及访问量的不断上升,ebay在1999年开始对架构进行升级,技术架构发生了较大的变化,这期间主要是从1999-2004年,而架构的版本号则从V2.0到V2.5 ,下面我们来看看Ebay V2.0技术架构
eBay的网站架构有哪些技术特点

V2.0
开始采用oracle服务器,数据库服务器和web服务器分开,数据库独立部署到一台新的机器上面

程序逻辑上面已经开始分层,也就是我们常说的mvc3层结构:显示层、业务逻辑层、数据访问层,而在物理上面还是两层结构 web服务器 以及 数据库服务器

编程语言采用c++,那个时候java刚兴起,估计也没有其他好的语言选择了。

V2.1
每组应用对应多台服务器,而多台服务器组成一个 servler pool(服务池),通过一个负载均衡服务器来分别转发请求到不同的服务器

数据库部署到性能更加好的服务器上面

V2.2
增加了一台数据库服务器作为 备份服务器,防止失败

V2.3
这个版本只是对每个应用增加了更多的服务器,不断的进行server pool

V2.4
这个版本最大且最重要的改变就是对数据库进行垂直拆分,即把数据库按照不同的功能模块进行划分,例如交易库,会员库,帐务库

V2.5
这个版本在2.4的版本上面,对部分数据库进行读写分离,同时对Item(物品条目)数据库进行水平拆分,把Items按照不同的CateGoty分配到不同的Categoty商品库里面,,这样大大的扩展了对Items数据库的访问性能。
eBay的网站架构有哪些技术特点

图表 2 ebayV2系统架构

从上可以看出ebay V2的架构变迁,主要是通过服务器的添加,数据库的垂直拆分以及水平拆分,数据库的读写分离操作 来提高整个网站的性能。在web层,通过添加服务器来进行水平扩展,同时对应用服务功能进行垂直拆分,按照不同的业务功能划分到不同的系统。在数据库层面,进行了读写分离尝试,对数据库进行垂直拆分,同时把Items库按照Category进行水平拆分,这样做,分散了对产品库items的集中访问,不过需要在DAL层提供透明的访问机制,ebays这里貌似还并没有这个成熟的框架,同时不知道 分布式事务ebay在这个阶段是如何实现的。

V3
整个应用程序开发平台全部替换为j2ee平台,用java改写了整个网站。看来是一次比较大的工作。目的是为模块解耦 以及模块复用,从这里,我们可以看出java在开发复杂企业应用的优势。

V3版本在数据库层面上面做了更加优化的设计,ebay继续在数据库上面进行优化

垂直拆分数据库,按照 功能模块 拆分为更多的子库

水平拆分数据库,对同一类数据,按照key值的不同数据分配到不同的数据库中(具体水平分库的方式有多种,这里就不再介绍了。)在进行水平拆分数据库的时候,ebay也必须建立一套透明的DAL访问方式,必须提供透明的数据库访问机制以及透明的数据库路由功能,数据库的物理结构变更不会影响到代码的逻辑变动。

在这里,ebay也在数据库层给出了最佳实践:

尽量减少数据库CPU的消耗,例如不使用存储过程,只使用少量的触发器

减少数据库层面的逻辑功能,例如数据转化,组合,这些都放在逻辑层

减少动态sql,主要是SQL中参数的动态生成功能,这一点,公司的DBA也在强调

尽可能的缩短数据库的事务时间,尽可能早的结束事物

尽可能的采用异步更新数据库方式,分散数据库的压力,例如消耗数据库时间的操作要放在夜间处理。

不使用分布式事务,看来分布式事务的确不使用高并发性的系统


在应用逻辑层面,ebay把系统按照功能划分成许多不同的模块,每个模块作为一个子系统,同时通过水平扩展子系统服务器数量来提高整个系统的伸缩性。

下面看看ebay在应用层面给出的最佳实践

保持应用层子系统完全是无状态的,可以水平进行无限扩展以提高伸缩性,通过负载均衡服务器均等分配到各个子系统的实例池里面。

尽可能的使用缓存,缓存能够减少数据库的压力,使用空间来换时间

严格划分系统的各个层面,表现层,业务逻辑层,服务集成层,DAO层,基础设施层。

在应用层的设计上面,ebay通过不同的功能划分了很多domain,每个domain只负责自己的功能的业务逻辑,domain与domain之间是不会依赖的,同时还会提供common domain 提供各个 domain之间的交互以及依赖,见下图:
eBay的网站架构有哪些技术特点

由于ebay的数据库按照逻辑划分了很多不同的字库,那么ebay必须提供透明的访问数据库的能力,举个例子:ebay把Items按照categoray分成了很多sub items库,假如需要查询出来某一个用户所购买的所有Items,那么必须要查询所有的sub items库,把数据库组合出来,那么DAL层必须屏蔽数据库的物理结构,一次性的把所有的sub items库中对应的数据查询出来。而这个访问,对应用来说是透明的。应用不需要关注到底items有多少个子库。
eBay的网站架构有哪些技术特点

ebay的架构特点:
Partition Everything

当一个网站刚开始时,可能一天只有几十个人访问,或者几百个,可能一台普通的服务器就足够了,db和应用统统都可以放在一起,可是随着用户的增加,业务的增加,一台服务器远远不够了,就自然想增加服务器,系统应该跟随改变。多一台服务器,也就减轻了一台压力。这样就出现了分割业务和分割数据。

其实要做到恰到好处,也非常不容易,ebay按照业务功能水平划分应用,水平划分数据库。这个在国内好多网站都是这样做,不足为奇了,不过水平划分功能后,单个功能应用的分割也大有文章可做。怎么划分,很早以前ebay的架构文档说到这个事情。

在水平按照业务划分数据库后可以再根据一定的规则划分表数,其中规则有很多,可以按照主要业务生产者为引导进行分割,所有数据跟随生产者一起,至于什么规则可以各抒己见。

Asynchrony Everywhere

同步应用会带来强耦合,可用性保障差,特别是在用户体验方面极度失败,试想一个网站首页要获取那么多业务信息如果同步的话会流失很大一部份用户,如果再加上网络慢,等到蚊子都睡觉了,人哪里还有时间看,其实分布式系统应该尽量使用异步处理。

EBay的应对策略为:事件驱动和pipeline、多播消息,涉及的技术为:消息中间件(无序、至少一次到达)、基于SRM技术的可靠多播。

Automate Everything

配置信息的动态化,涉及的技术:配置发布/订阅机制的实现、机器学习。这个超级牛,不知道国内有多少网站做到了,听说淘宝做到了(呵呵)。

Remember Everything Fails

故障检测和回滚

这个现在很多网站都做,不过ebay做地比较牛,ebay差不多每天有2TB 的日志,通过监控事件作出有效的判断和预警,淘宝也做得很好。

eBay的应对策略为:异常后发消息、接收者获取消息警报、按功能实现降级,保障核心功能的可用性,涉及的技术有:消息中间件、如何实现按功能降级。

Embrace Inconsistency

其实这个有点象我们整天说的“拥抱变化”。在系统中如果事务过多,极大影响性能,特别是分布式事务,如果一味追求一致性会严重性能,ebay的做法是过程不一致,最终一致。涉及的技术有:消息中间件、CAP(Consistency 一致性;Availability 可用性; Tolerance of network Partition 分区容忍性(可理解为部分节点故障或节点之间连接故障下系统仍可正常工作))等

 Expect (R)evolution

这里eBay讲到的主要是如何更好的应对变化,这包括了功能演变、架构演变,eBay的应对策略为:灵活的schema、可插拔的处理流程以及增量的系统发布,这方面的技术还是相当复杂的,eBay采用的是:配置化处理流程、系统发布过程支持多版本共存。

Dependencies Matter

这点随着分布式的应用和异步的应用,以及功能的不断增加后,就会变得比较明显,eBay也是如此。

他们的应对策略:服务拓扑管理、设计上的控制(只允许依赖…)、客户端承担责任。

说到这点,不得不说下,客户端承担责任这点其实真的很重要,现在很多架构都喜欢放在服务端上解决N多问题,但很多场合确实有必要放到客户端去做,当然,这也会带来一些问题,例如升级等。

“eBay的网站架构有哪些技术特点”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: eBay的网站架构有哪些技术特点

本文链接: https://www.lsjlt.com/news/260182.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • eBay的网站架构有哪些技术特点
    本篇内容介绍了“eBay的网站架构有哪些技术特点”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!eaby技术架构变迁ebay的系统架构的变迁主...
    99+
    2023-06-10
  • openstack架构的特点有哪些
    模块化:OpenStack采用了模块化的架构,有多个组件(如Nova、Neutron、Cinder等)组成,每个组件负责不同的功...
    99+
    2024-04-02
  • MySQL技术特点有哪些
    小编给大家分享一下MySQL技术特点有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!MySQL技术特点(1)它使用的核心线程是完全多线程,支持多处理器。(2)有多种列类型:1、2、3、...
    99+
    2024-04-02
  • MatrixOne构架有哪些特点
    MatrixOne架构具有以下特点:1. 高度灵活:MatrixOne架构可以根据不同的业务需求和组织结构进行灵活的定制和扩展。它支...
    99+
    2023-09-26
    MatrixOne
  • c#中wcf架构的特点有哪些
    分布式计算:WCF是一个分布式计算框架,可以在不同的计算机上运行不同的服务,并且可以通过网络进行通信。 基于标准:WCF基于...
    99+
    2024-03-02
    c#
  • JavaWeb网站技术架构是怎样的
    这期内容当中小编将会给大家带来有关JavaWeb网站技术架构是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。<p _hover-ignore="1" white-space...
    99+
    2023-06-05
  • 网站所固有的特点有哪些
    本篇内容介绍了“网站所固有的特点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  优点一、网站上可以实现即时聊天功能。  有很多的网站...
    99+
    2023-06-10
  • Aurora数据库的架构特点有哪些
    分布式架构:Aurora数据库采用了分布式共享存储架构,数据被分散存储在多个节点上,使得数据库能够应对高并发和大规模数据的需求。...
    99+
    2024-04-09
    Aurora
  • 云服务器技术有哪些特点
    云服务器(Cloud Storage)是一种使用虚拟化技术将计算资源和存储资源分布在多个地方的服务器集群,它的优势在于可以为用户提供弹性的云数据中心资源,以提高资源的利用率和灵活性,从而提升云计算服务的性能和可靠性。 云服务器的特点如下:...
    99+
    2023-10-26
    服务器 有哪些 技术
  • 网站CDN的关键技术有哪些
    网站CDN的关键技术有:1、内容发布,借助于建立索引、缓存、流分裂、组播等技术;2、内容路由,能让用户请求得到最近内容源的响应;3、内容交换,利用应用层交换、流分裂、重定向等技术,智能地平衡负载流量;4、性能管理,能保证网络处于最佳的运行状...
    99+
    2024-04-02
  • 个人架设网站需要哪些技术
    个人架设网站需要以下技术:1. 前端开发技术:HTML、CSS、JavaScript等。2. 后端开发技术:PHP、Python、N...
    99+
    2023-06-06
    架设网站
  • 网站CDN服务有哪些特点
    网站CDN服务的特点有:1、能提高企业站点的访问速度和稳定性 ;2、能实现跨运营商的网络加速,保证不同网络中的用户能得到良好的访问质量;3、能自动选择Cache服务器,加快远程访问的速度;4、能自动生成镜像,减少远程访问的带宽,减轻原站点W...
    99+
    2024-04-02
  • 网站建站技术及工具有哪些
    1. HTML/CSS/JavaScript:网站建设的基本技术,前端开发的必备技能。2. CMS(内容管理系统):如WordPre...
    99+
    2023-06-04
    建站技术 建站
  • asp网站空间有哪些特点
    ASP网站空间是一种基于Windows操作系统和IIS服务器的Web空间,其主要特点包括:1、支持ASP技术ASP网站空间支持ASP...
    99+
    2023-05-14
    asp网站空间 空间
  • Flex富客户端技术的特点有哪些
    这篇文章主要为大家展示了“Flex富客户端技术的特点有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Flex富客户端技术的特点有哪些”这篇文章吧。Flex技术分析与以往纯B/S技术不同,Fl...
    99+
    2023-06-17
  • 云服务器技术有哪些特点呢
    云服务器(Cloud Storage)是一种用于存储和共享数据的服务器技术,其特点包括:快速、高效、弹性和可靠性。 快速:云服务提供商通常以分钟、小时或天为单位来提供服务,使得企业可以在几分钟内部署、迁移或停止资源。这种快速的服务使得企业...
    99+
    2023-10-26
    服务器 有哪些 技术
  • 数据库探针技术有哪些特点
    1. 高效性:探针技术可以高效地监控和分析数据库的运行情况,提供实时的性能数据和统计信息。2. 精确性:探针技术可以提供非常精确的性...
    99+
    2023-06-13
    数据库探针 数据库
  • 常州网站建设技术有哪些
    常州网站建设技术包括:1. HTML/CSS技术:用于网站的基础结构和样式设计。2. JavaScript技术:用于网站的交互效果和...
    99+
    2023-06-12
    常州网站建设 网站建设
  • J2EE领域的技术框架结构图有哪些
    本篇文章给大家分享的是有关J2EE领域的技术框架结构图有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1.Spring 架构图Spring 是一个开源 框架,是为了解决企业...
    99+
    2023-06-17
  • java架构师必须掌握的技术有哪些
    这篇文章主要介绍“java架构师必须掌握的技术有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“java架构师必须掌握的技术有哪些”文章能帮助大家解决问题。一、前言一个成熟的大型网站(如淘宝、京东...
    99+
    2023-06-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作