服务热线:400-0033-166
万商云集 - 企业数字化选用平台

企业首选的

数字选用平台

解析:eBay的网站架构以及技术特点

2021-01-04 14:56:31 阅读(425 评论(0)

ebay的技术架构变化ebay的系统架构变化主要经历了四个阶段。下图显示了ebayV1版ebay的ebay系统架构变化时间表。ebay使用FREEBSD APACHE PERL DGBM,这是一个相对原始的模型,相对简单,操作系统,应用服务器,web服务器和数据库服务器都在同一台机器中,网络结构在物理上只有一层。整个网站有四个域名,每个域名对应不同的应用程序,每组应用程序对应一个服务器。随着业务量和访问量的不断增加,ebayV1系统架构在1999年开始升级,技术架构发生了很大变化。在此期间,主要从1999年到2004年,架构的版本号从V2.0到V2.5。让我们来看看ebayV2.0技术架构V2.0开始使用ORACLE服务器。数据库服务器和web服务器分开,数据库独立部署到新机器上的程序逻辑已经开始分层,即mvc3层结构:显示层、业务逻辑层、数据访问层、物理或两层结构web服务器和数据库服务器编程语言使用c ,当时java刚刚兴起,估计没有其他好的语言选择。V2.1每组应用程序对应于多个服务器,多个服务器形成servlerpol(服务池),通过负载平衡服务器转发到不同的服务器数据库部署到性能更好的服务器V2.2添加数据库服务器作为备份服务器,防止失败V2.3版本只为每个应用程序添加更多的服务器,ServerpolV2.4版本最大、最重要的变化是垂直拆分数据库,即根据不同的功能模块划分数据库,如交易库、会员库、会计数据库V2.5版本在2.4版本中,读写和分离部分数据库,并水平拆分Item(项目项目)数据库,根据不同的Categoty将Items分配到不同的Categoty商品库中,从而大大扩展了Items数据库的访问性能。图表2ebayV2系统架构 从以上可以看出,ebayV2的架构变化主要是通过添加服务器、垂直数据库和水平数据库来提高整个网站的性能。图表2ebayV2系统架构 从以上可以看出,ebayV2的架构变化主要是通过添加服务器、垂直数据库和水平数据库的分离来提高整个网站的性能。在web层中,通过添加服务器进行水平扩展,并垂直分割应用服务功能,并根据不同的业务功能划分为不同的系统。在数据库层面,尝试阅读和写作分离,垂直分割数据库,同时根据category水平分割Items库,分散产品库items的集中访问,但需要在DAL层提供透明的访问机制,ebays似乎没有这个成熟的框架,同时不知道分布式事务ebay在这个阶段是如何实现的。 V3的整个应用程序开发平台都被j2ee平台取代,整个网站都被java改写。这似乎是一项相对较大的工作。目的是解耦模块和复用模块。从这里,我们可以看到java在开发复杂企业应用方面的优势。 V3版本在数据库层面进行了更优化的设计。ebay继续优化数据库上的垂直分割数据库,并根据功能模块将其分为更多的子库水平分割数据库。对于同一类数据,根据key值的不同数据分配到不同的数据库(具体的水平分割方法有很多,这里不再介绍。)ebay还必须建立一套透明的DAL访问模式,并提供透明的数据库访问机制和透明的数据库路由功能。数据库的物理结构变化不会影响代码的逻辑变化。 在这里,ebay也给出了数据库层的最佳实践:尽量减少数据库CPU的消耗,如不使用存储过程,只使用少量触发器来减少数据库层的逻辑功能,如数据转换、组合,这些在逻辑层减少动态SQL,主要是SQL参数的动态生成功能,公司DBA也强调尽可能缩短数据库的交易时间,尽早结束事情,尽可能采用异步更新数据库的方式,分散数据库的压力,如夜间处理消耗数据库时间的操作。不使用分布式事务,分布式事务似乎不使用高并发性系统在应用逻辑层面,ebay根据功能将系统划分为许多不同的模块,每个模块作为子系统,并通过水平扩展子系统服务器的数量来提高整个系统的可伸缩性。让我们来看看ebay在应用层面给出的最佳实践,以保持应用层子系统完全无状态。它可以在水平上无限扩展,以提高可伸缩性,并通过负载平衡服务器均匀分配到各子系统的实例池中。让我们来看看ebay在应用层面给出的最佳实践,以保持应用层子系统完全无状态。它可以在水平上无限扩展,以提高可伸缩性,并通过负载平衡服务器均匀分配到每个子系统的实例池中。缓存可以尽可能减少数据库的压力。使用空间可以改变时间,严格划分系统、性能层、业务逻辑层、服务集成层、DAO层和基础设施层的各个层次。在应用层的设计上,ebay通过不同的功能划分了很多domain,每个domain只负责自己功能的业务逻辑,domain和domain不依赖,还提供comondomain提供各个domain之间的互动和依赖,见下图:因为ebay的数据库按逻辑划分了很多不同的字库。然后ebay必须提供访问数据库的透明能力。例如,ebay根据categoray将Items划分为许多subitems库。如果需要查询用户购买的所有Items,则必须查询所有subitems库并组合数据库,然后DAL层必须屏蔽数据库的物理结构,一次性查询所有Subitems库中对应的数据。而且这个访问,对于应用程序来说是透明的。这种访问对应用程序来说是透明的。应用程序不需要注意items有多少个子库。ebay的结构特点:当一个网站开始时,可能每天只有几十个人访问或数百个,也许一个普通的服务器就足够了,db和应用程序可以放在一起,但随着用户的增加,业务的增加,服务器远远不够,自然想要添加服务器,系统应该跟随变化。多一台服务器可以减轻压力。这样就出现了业务分割和数据分割。其实要做到恰到好处并不容易。ebay根据业务功能水平划分应用程序和数据库。这在国内很多网站上都是这样做的,并不奇怪,但在水平划分功能后,单个功能应用程序的划分也有很多文章要做。如何划分,ebay的架构文档很久以前就谈到了这件事。根据业务水平划分数据库后,可以根据一定的规则划分表数,包括许多规则,可以根据主要业务生产者进行划分,所有数据都跟随生产者,至于什么规则可以表达自己的观点。Asynchronyeverywhere同步应用程序会带来强耦合,可用性保证差,尤其是用户体验极度失败。想象一下,如果一个网站的主页同步获取这么多业务信息,很大一部分用户都会流失。如果加上网络慢,蚊子睡觉的时候,人们还有时间看。其实分布式系统应该尽量使用异步处理。EBay的应对策略是:事件驱动和pipeline、多播新闻涉及的技术有:消息中间件(无序,至少一次到达)、基于SRM技术的可靠多播。Automateeeverything配置信息的动态化涉及技术:配置发布/订阅机制的实现和机器学习。不知道国内有多少网站做到了这个超级牛,听说淘宝做到了(呵呵)。现在很多网站都在做RemembereverythingFails故障检测和回滚,但是ebay做得很好,ebay几乎每天都有2TB日志,淘宝也通过监控事件做出了有效的判断和预警。eBay的应对策略是:异常后发送消息,接收者获取消息报警,根据功能降级,以确保核心功能的可用性。涉及的技术包括:消息中间件以及如何根据功能降级。事实上,EmbraceInconsistency有点像我们整天所说的“拥抱变化”。如果系统中的事务太多,会对性能产生很大的影响,尤其是分布式事务。如果盲目追求一致性,性能会很严重。ebay的做法是过程不一致,最终一致。涉及的技术包括:新闻中间件,CAP(Consistency的一致性;Availability的可用性;ToleranceofnetworkPartition分区的容忍度(可以理解为系统在某些节点故障或节点之间的连接故障下仍能正常工作)等。) Expect(R)ebay在evolution这里主要讲的是如何更好地应对变化,EBay的应对策略包括功能演变和架构演变:灵活的schema、可插拔处理流程和增量系统发布的技术相当复杂。EBay采用配置处理流程和系统发布流程,支持多版本共存。随着分布式应用、异步应用和功能的不断增加,DependenciesMatter会变得更加明显,EBay也是如此。随着分布式应用、异步应用和功能的不断增加,dependenciesmatter变得更加明显,ebay也是如此。他们的应对策略:服务拓扑管理和设计控制(只允许依赖……)、客户端负责。说到这一点,我不得不说,客户端承担责任真的很重要。现在很多架构都喜欢在服务端解决N个以上的问题,但在很多情况下,客户端确实需要这样做。当然,这也会带来一些问题,比如升级。结论:在大规模、高并发系统的设计中,最常用的技术是分层和缓存,将业务流程垂直分解为多个系统,每个系统提供不同类型的服务,通过不同的服务组装业务流程,这就是SOA设计的理念。各系统可进行水平集群、无状态服务、水平无线扩展、数据库层面,主要采用垂直库、水平库、读写分离、热备份等技术,提高数据库的读写能力。在应用层中,可以考虑使用集中缓存或分布式缓存来降低数据库的访问压力。

内容来源:网络,以上内容来源于网络,不代表本站观点,如有侵权,请联系删除。

推荐阅读

最全淘宝店数据分析名词解释,建议收藏!

一个完整的淘宝店是由多个页面组成的,每个页面的指标对淘宝店的业绩都有很大的影响。但是不同页面的衡量标准是不一样的,只有对症下药,关注好各个页面的指标,才能找出提高业绩的方法,本篇最全淘宝店数据分析名词解释值得你收藏! 首页数据首页是一个淘宝…查看详情

讯飞输入法好用吗

讯飞输入法是中国知名科技公司讯飞做的智能输入法产品。它在语音识别和智能预测方面具有较高的声誉,但是否好用还需从多个方面进行评估。 首先,讯飞输入法在语音输入方面表现出色。它采用了领先的语音识别技术,能够准确地将用户的语音转化为文字输入,并且…查看详情

收款语音播报软件有哪些比较好的牌子推荐?

一般商店的老板都会使用远程收款语音播报器,这种收款语音播报器可以支持无需手机蓝牙链接,允许手机完全离开,也可以支持收款语音播报。那么这种收款语音播报软件有哪些比较好的牌子推荐呢? 1.云喇叭 云喇叭同时支持微信和支付宝付款,支持两种联网方式…查看详情

怎样才能保证选择到比较好的网站建设公司?

移动5G时代,越来越多的企业都想通过互联网获得流量,占据网络市场。但很多时候是有无所事从,原因就在于他们不知道该如何去建立一个属于自己的门户网站。那么就中小企业而言,该如何进行企业网站建设呢?怎样才能选到比较好的网站建设公司?接下来就让我们…查看详情

工程施工管理软件是什么?工程施工管理软件怎么选

现在随着科技的不断发展给我们建筑行业带来了十分大的便利,工程施工管理软件作为其中之一,通过对它的使用可以使得双方进行工程监督在开始建设前就有一个大致的成本估计,方便了工程施工。工程施工管理软件哪个好?来看看这篇文章有解答。工程施工管理软件是…查看详情

服装类商标如何注册 服装类商标注册技巧

现在商标也分为很多的行业和类别,而且不同的类别商标注册的细节也有一定的差别,下面万商云集小编给大家来详细介绍一下服装类商标如何注册 服装类商标注册技巧这一块的内容,希望大家通过下面的内容能对服装类商标注册有一个新的认识。  服装类商标如何注…查看详情

服装店商家不离手的服装进销存管理软件,快来看看

很多的制衣厂或者经营服装的企业都需要服装货品管理软件,从而更好地管理自己的库存,提高资金的周转率等,从而给企业带来更大的效益,以下是我给大家推荐的服装货品管理软件,希望对大家有所帮助。 1、商陆花 它的管理系统覆盖面比较广,…查看详情

音频剪辑软件app哪个好?这几款比较实用

现在是观看视频的时代,很多人也特别喜欢拍小视频,拍摄完成之后如果想要带来更理想的视觉感,打造出大片的感觉,那么就应该要对视频进行剪辑与制作,另外在进行音频设计的时候,想要打造成功理想的效果,也应该要找到比较好的软件来使用。那么音…查看详情

最新看小说的软件,最全且免费的排行榜前十

人们的娱乐生活方式逐渐增多,看小说也是其中的一种。文学作品不断出版,每个人都可以找到一款适合自己的看小说软件的。那么就让我来给大家揭晓看小说软件排行榜前十名的应用吧,介绍内容如下:1.七猫免费小说这款app是一款拥有海量免费小说、热门小说、…查看详情

代理商标注册的好处是什么?通过这几点为大家详细梳理

现在的人们在时间方面都比较紧迫,主要源自于快节奏的生活,所以不管是商标的注册,或者是转让方面,通常都会选择由代理机构来帮忙,这样能够将更多的时间用于工作和生活,同时还可以省心一些,毕竟其中所涉及到的专业问题较多,除此之外,也有很多其他的好处…查看详情

7款2022年最好用的eml文件阅读软件推荐

eml文件现已成为了一款受欢迎的格式文件,这期小编给大伙儿讲解这款eml文件阅读软件,希望可以帮助到在工作上碰到这类文档不会打开的用户,能给这类用户提供许多帮助。 1.eml文件阅读软件中文版 是一款极为简单好用的浏览eml…查看详情

餐饮店装潢流程有哪些?有什么注意事项?

随着经济的飞速发展,人们生活水平的提高,越来越多的人开始让自己不仅吃的饱,还要吃的好,于是会隔三差五的和家人朋友到外面的餐饮店就餐。很多人看准时机,也加入到餐饮行业,相信在刚着手门店装潢的时候大家会有疑问:餐饮店装潢流程有哪些?有什么注意事…查看详情

win7系统纯净版好用吗

Windows7纯净版是指经过精简和优化的Windows7操作系统版本,以提供更高的性能和稳定性。以下是关于Windows7纯净版的一些观点和考虑因素: 1.性能和稳定性:Windows7纯净版通常会去除不必要的预装软件、驱动程序和服务,以…查看详情

中文乱码的产生原因 中文乱码出现的原因

  相信大家在很多的场合都遇到了乱码的现象,其实这个是很常见的现象,但是很多的朋友都不是很熟悉,下面小编就给大家来详细介绍一下中文乱码的产生原因 中文乱码出线的原因这一块的内容,希望能帮助到大家。  什么是乱码  乱码,指的是由于本地计…查看详情

gif制作软件有哪些?好用的gif制作软件推荐

很多人在保存图片的时候格式是不一样的,gif格式就是比较常见的,如果想要利用这个格式的图片进行制作,那么就应该要找到一些比较好的软件,这样才能够帮助自己打造出理想的效果。那么gif制作软件有哪些?接下来就给大家推荐这款比较好用的…查看详情

最新文章