大型网站技术架构(七)网站的可扩展性架构

news/2024/5/9 14:30:07/文章来源:https://blog.csdn.net/weixin_33910460/article/details/92657029

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

 扩展性是指对现有系统影响最小的情况下,系统功能可持续扩展或提升的能力。

        设计网站可扩展架构的核心思想是模块化,并在此基础上,降低模块间的耦合性,提供模块的复用性。模块通过分布式部署,独立的模块部署在独立的服务器上(集群)从物理上分离模块之间的耦合关系。

        模块分布式部署以后具体聚合方式主要有分布式消息队列和分布式服务

1、利用分布式消息队列降低系统耦合性

        如果模块之间不存在直接调用,那么新增模块或者修改模块对其他模块影响最小,这样系统的可扩展性无疑更好一些。

        事件驱动框架:通过在低耦合的模块之间传输事件消息,以保持模块的松散耦合,并借助事件消息的通信完成模块间合作,典型的架构就是生产者消费者模式。在大型网站架构中,具体实现手段很多,最常用的就是分布式消息队列,如下图所示:

 

 

 

       消息队列利用发布-订阅模式工作,消息发送者发布消息,一个或者多个消息接收者订阅消息。

       由于消息发送者不需要等待消息接受者处理数据就可以返回,系统具有更好的响应延迟;同时,在网站访问高峰,消息可以暂时存储在消息队列中等待处理,减轻数据库等后端存储的负载压力。

       目前开源的和商业的分布式消息队列产品有很多,比较著名的有Apache ActiveMQ等,如下是分布式消息队列的架构原理:

 

 

 

 

 2、利用分布式服务打造可复用的业务平台

        使用分布式服务是降低系统耦合性的另一个重要手段。如果说分布式消息队列通过消息对象分解系统耦合性,不同子系统处理同一个消息;那么分布式服务则通过接口分解系统耦合性,不同子系统通过相同的接口描述进行服务调用。

        大型网站分布式服务的需求与特点:

  1. 负载均衡
  2. 失效转移
  3. 高效的远程通信
  4. 整合异构系统
  5. 对应用最小入侵
  6. 版本管理
  7. 实时监控

 目前国内有较多成功实施案例的开源分布式服务框架是阿里巴巴的Dubbo,下图是Dubbo的架构原理:

 

 

        服务消费程序通过服务接口使用服务,而服务接口通过代理加载具体服务,具体服务可以是本地的代码模块,也可以是远程的服务,因此对应用较小入侵;应用程序需要调用服务接口,服务框架根据配置自动调用本地或远程实现。

        服务框架客户端模块通过服务注册中心加载服务提供者列表(服务提供者启动后主动向服务注册中心注册自己可提供的服务接口列表),查找需要的服务接口,并根据配置的负载均衡策略将服务调用请求发送到某台服务提供者服务器。如果服务调用失败,客户端模块会自动从服务提供者列表选择一个可提供同样服务的另一台服务器重新请求服务,实现服务的自动失效转移,保证高可用服务。

3、利用开放平台建设网站生态圈

        大型网站为了更好的服务自己的用户,开放更多的增值服务,会把网站内部的服务封装成一些调用接口开放出去,共外部的第三方开发者使用,这个提供开放接口的平台被称作开放平台。

        开放平台是网站内部和外部交互的接口,外部需要面对众多的第三方开发者,内部需要面对网站内诸多的业务服务。虽然每个网站的业务场景和需求都不相同,但开发平台的架构设计却大同小异,如下图所示:

API接口:是开发平台暴露给开发者使用的一组API,其形式可以是RESTfull,WebService,RPC等各种形式。

协议转换:将各种API输入转换成内部服务可以识别的形式,并将内部服务的返回封装成API格式。

安全:除了一般应用需要的身份识别、权限控制等安全手段,开放平台还需要分级的访问带宽限制,以保证资源被公平合理的使用。

审计:记录第三方应用的访问情况并进行监控、计费等。

路由:将开放平台的各种访问路由映射到具体的内部的服务。

流程:将一组离散的服务组织成一个上下文相关的新服务,隐藏服务细节,提供统一接口供开发者调用。

转载于:https://my.oschina.net/zhanghaiyang/blog/593391

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_779247.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ASP.NET 快乐建站系列 -- 如何真正提高ASP.NET网站的性能[1]

前言 怎么才能让asp.net 网站飞得更快,有更好的性能? -- 这是很多开发者常常思考的一个问题。我有时候会做大量的测试,或请求别人帮忙采集一些数据,希望能够验证网上一些专家的建议或证明自己的一些猜想。 理论上讲,我…

分析网站总是跳出率高留不住用户咋回事

为什么80%的码农都做不了架构师?>>> 网站跳出率简单理解为即用户停留时间短,一个网站跳出率过高不但影响用户体验,也会影响网站的排名。下面花仙网(http://www.ihuaxian.net/)告诉你是哪些原因导致你的网站高跳出率? …

30分钟搞定后台登录界面(103个后台PSD源文件、素材网站)(转)

出处:http://www.cnblogs.com/best/p/6582294.html 目录 一、界面预览二、PSD源文件预览三、工具分享四、资源说明五、素材下载网站六、下载去年八月时要做一个OA系统为了后台界面而烦恼,后来写了一篇博客(《后台管理UI的选择》)介…

校园心理网站html模板,校园心理微电影剧本

微电影剧本名 如果 剧情概述 一段青葱岁月 一首无意的插曲 在这最美的季节 微电影主题曲 插曲 待定 主要角色 女一号 雨落 20岁 在校大学生 性格安静 男一号 杜宇生 20岁 在校大学生 男二号 A 雨落前男友 在校大学生---------------------------------------------------------…

vue网站打包后报错:net::ERR_CONTENT_LENGTH_MISMATCH 200 (OK)

vue开发的网站,打包上线后,经常有两个大点的js文件报错:(一个1M多点,一个650K) net::ERR_CONTENT_LENGTH_MISMATCH 200 (OK)在网上搜索,答案基本上都说是nginx的proxy_temp目录权限的问题&…

修改默认端口号_搭建apache服务器,默认网站浏览,默认页页面文件修改

apache服务器是Linux系统中基于提供网站web浏览的服务器,是建立web站点非常常用的服务器软件之一,除了apache还有nginx。今天以apache服务器软件为例给大家做介绍。1、安装apache服务程序httpd是apache服务器软件的软件包名yum安装httpd安装更新完成2、启…

利用缓存来提高网站的性能(Caching to Improve the Performance of Your Website )

您可以提高您站点的访问速度,那么就需要用到cache(缓存),通常可以我们使用cache来处理经常检索的结果或不经常改变的数据结果。 你将学习: l 如何使用缓存来提高网站的响应速度。 本章介绍的功能: l WebC…

网站网页栅格化

为什么80%的码农都做不了架构师?>>> 网站网页栅格化 2010-09-02 10:30:12 首先澄清一个应用场景问题。 指出,对于结构复杂的网站,不少设计师们喜欢采用960固定宽度布局。但要注意的是,960并不是万能钥匙&#xff…

A5营销团队告诉我的SEO诊断那些事

自从做博客以来,一直和A5的朋友有着联系,之前A5论坛给我做的两次专访,让更多站长知道了卢松松博客,从此也和A5结下了缘分。访谈后的从草根转向知名,也有了第一次投放广告经历,应该说是一次质的飞跃。(配图说…

域名解析到html,新手建站入门教程 域名的解析与绑定

那么有了注册了域名和购买了虚拟主机以后,怎么样才能在IE里输入你的域名就能打开你的站呢?这就需要将域名解析到空间,同时空间也需要绑定域名。今天我们就来讲一下域名的解析和绑定:第一步:域名的解析;以我…

搜索引擎优化系统知名乐云seo_seo搜索优化教程02-搜索引擎seo工作原理

为了使大家更方便的了解及学习网络营销推广、seo搜索优化,星辉信息科技强势推出seo搜索优化教程.此为seo教程第二课常用搜索引擎当今搜索流量入口主要分为PC端搜索和移动端搜索。从最新公布的2018年搜索引擎市场份额来看,不论是从PC端和移动端,百度的市场…

网站架构服务器,网站架构,网站架构服务器怎么划分?

1.按应用层次划分为入门级服务器、工作组级服务器、部门级服务器和企业级服务器四类网站架构。(1)入门级服务器(2)工作组级服务器(3)部门级服务器(4)企业级服务器2.按服务器的处理器架构(也就是服务器CPU所采用的指令系统)划分把服务器分为CISC架构服务器、RISC架构服务器和VLI…

企业建站需避免仿站陷阱

仿站这个词想必很多人都有听过,简单从字面意思来看,我们也不难知道,所谓仿站就是模仿别的网站建设出来的网站,也就是有一个网站作为参考和模仿,然后根据这个网站做出来的相似的网站。因此,当我们看到很多相…

13个网站测速服务—转自Cnbeta

2019独角兽企业重金招聘Python工程师标准>>> 访问速度对于一个网站或博客来说实在太重要了,据有关部门的估计:一般一个浏览者如果在5-8秒钟没有打开一个网站,那么该网站会丢失1/3的浏览 用户。超过10秒,你的访客绝对会…

熊掌号收录比例对于网站原创数据排名的影响[图]

2019独角兽企业重金招聘Python工程师标准>>> 从去年下半年开始,我在写博客了,因为我觉得业余写写博客也还是很不错的,但是从2017年下半年开始,百度已经推出了原创保护功能和熊掌号平台,为此,我也…

Photoshop中文版免费在线网站哪个好

Photoshop使用国度越来越广,对于国人来说,汉化的PS使用起来更加方便,如今中文版的PS几乎每个人的电脑中都有,但是不乏也有很多人比较任性,就比如小编,小编经常使用PS,但是电脑中就是没有Photosh…

《大型网站技术架构》读书笔记二:大型网站架构模式

此篇已收录至《大型网站技术架构》读书笔记系列目录贴,点击访问该目录可获取更多内容。 一、分层 最常见的架构模式,将系统在横向维度上切分成几个部分,每个部分单一职责。网站一般分为三个层次:应用层、服务层和数据层&#xff0…

这些资源网站为什么能获得5万知乎大佬推荐,而我错失了什么吗?

现在很多朋友可能只要是一听到资源网站,想必就会好奇是什么网站,用用看是不是由说的那么厉害!其实资源网站给我们的诱惑是在是太大了,其主要原因是可以帮助我们搜索到很多意想不到的资源! 为了回应大家的需求&#xff…

在pycharm用flask制作注册网站

具体的文件排列如下图&#xff1a; register.html代码如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body> <form action"{{ u…

大型网站技术架构(一)大型网站架构演化

2019独角兽企业重金招聘Python工程师标准>>> 看完了有一本书&#xff0c;就应该有所收获&#xff0c;有所总结&#xff0c;最近把《大型网站技术架构》一书给看完了&#xff0c;给人的印象实在深刻&#xff0c;再加上之前也搞过书本上讲的反向代理和负载均衡以及ses…