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

news/2024/5/9 4:05:46/文章来源:https://blog.csdn.net/weixin_33805992/article/details/92648600

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/595101

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

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

相关文章

汉字字符编码在线查询的网站

推荐一个汉字字符编码在线查询的网站,常用的编码方式通吃: https://www.qqxiuzi.cn/bianma/zifuji.php 效果:

如何知道一个网站的后台地址_你的网站在给别人盈利你知道吗?快来修改后台地址和账号密码...

众所周知,网站的安装程序是固定的,安装织梦模板的流程大家都会,这时大家会发现一个问题,我是这样安装的,别人也是这样安装的,那么是不是所有人的网站后台都是:http://你的域名/dede/&#xff0c…

全文搜索引擎有哪些?_搜索引擎工作原理是什么?seo蜘蛛抓取会受到哪些因素影响?...

seo优化就是搜索引擎优化,就是对网站进行各方面调整,使其更符合搜索引擎的算法要求,从而得到更多的流量及转化,所以做seo必须要多搜索引擎有更多的认识和了解。搜索引擎有哪些功能模块?它的工作原理是什么?…

作者免费分享自己论文也不行,知名学术社交网站被判侵权,此前已下架20万余篇论文...

萧箫 发自 凹非寺量子位 | 公众号 QbitAI这场关于“开放获取”的官司,最终还是出版商们打赢了。知名学术社交网站ResearchGate被判下架50篇受版权保护的论文,并被要求对侵权内容负责。起因是爱思唯尔和ACS(美国化学学会)发现&…

网站 java php_做网站用java还是php

做网站用java还是php?做网站用PHP会更合适, 因为php主要就是用于web网站开发方面,开发比较快速。1,PHP适合于快速开发,中小型应用系统,开发成本低,能够对变动的需求作出快速的反应。而Java适合于…

最大日漫网站崩了/ 马斯克星链要搞手机业务/ PS5涨价…今日更多新鲜事在此

日报君 发自 凹非寺量子位 | 公众号 QbitAI大家好,今天是8月26日,周五了~今天科技圈都有什么大事?来跟日报君一起看看吧。今日大新闻索尼宣布PS5涨价,国行版上调400元索尼的PS5涨价了,中国大陆国行PS5数字版…

虚拟机复制后需要改什么_网站改版后为什么需要每月运营维护?

我们都知道购买新车的陈词滥调,一旦您开了一些时间后,它的价值就会下降。尽管这可能是正确的,但您至少会放心,因为知道在最初几年出现任何问题时,保修将为您提供保护。如果您的发动机卡住了或您的变速器出现故障&#…

python实现简单爬虫功能(网站图片)

转自http://www.cnblogs.com/fnng/p/3576154.html 在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材。 我们最常规的做法就是通过鼠标右键&…

几个不错的java类、jar包及其依赖查找网站。。。

为什么80%的码农都做不了架构师?>>> 开发过程中有时需要查找类对应的jar包及其依赖,并且要能够下载。。。 之前都是用的以下两个(第一个还是不错,第二个比较垃圾,很多都查不到- -!) http://www…

四、管理网站(一) Using the command line interface

Orchard为许多在管理面板中可用的和不可用的功能的命令行接口。命令行工具名称是 “orchard.exe”,在网站根目录下bin目录中。 Using Commands 要查看可用的命令,输入help commands。 orchard> help commands List of available commands: ----------…

记一次网站服务器搬迁实录

这是一篇记录在日志里面的文章,今儿趁有时间整理整理。这篇文章记录了整个服务器切换的具体步骤和实施细则,一些小网站的搬迁和服务器的迁移可以做个参考。同时也记录下,方便自己的查阅。这是一个phpmysql写的网站,前期用的window…

经典网页设计:20个与众不同的 Flash 网站设计作品

如果你正在为你的 Flash 网站设计项目寻找灵感和新思路,那么这篇文章推荐的20个非常有创意的 Flash 网站设计作品相信能帮助到你。Flash 网站页面美观,互动性强,可以声形并茂,实现普通的 HTML 网站不能制造出的质感和动作&#xf…

curl网站开发指南

转载 http://www.ruanyifeng.com/blog/2011/09/curl.html 我一向以为,curl只是一个编程用的函数库。最近才发现,这个命令本身,就是一个无比有用的网站开发工具,请看我整理的它的用法。curl网站开发指南阮一峰 整理curl是一种命令行…

我是如何将网站全站启用Https的?-记录博客安装配置SSL证书全过程

评论 文章目录 为什么要Https如何选择Https安装部署SSL证书平滑过渡Https搜索引擎的响应启用Https小结正如大家所看到的,部落全站已经启用了Https访问了,连续几天的网站安装和调试SSL终于可以告一段落了。曾经看到身边不少的朋友纷纷启用Https&#xff…

网站无法显示logo?

那是因为你没有配置favicon.ico,每个网站根目录都会有一个favicon.ico,因为每个服务器都会请求根目录下的它。 转载于:https://www.cnblogs.com/cisum/p/8743722.html

html优化网站的方法,利用HTML优化加快网页速度方法介绍

减少web页面下载时间的关键就是设法减小文件大小。当多个页面共用一些成分内容时,就可以考虑将这些公用部分单独分离出来。比如:我们可以将多个HTML页面都用到的脚本程序编写成独立存在的。js文件,然后再在页面中按如下方式调用它&#xff1a…

优化网站设计(七):避免在CSS中使用表达式

前言 网站设计的优化是一个很大的话题,有一些通用的原则,也有针对不同开发平台的一些建议。这方面的研究一直没有停止过,我在不同的场合也分享过这样的话题。 作为通用的原则,雅虎的工程师团队曾经给出过35个最佳实践。这个列表请参考 Best Practices fo…

让你的网站拥有微博(weibo.com)关注图标

最近在做开发的过程中,有一个需求是在网站里面添加新浪微博(http://weibo.com)的关注图标。 先来看看我的运行效果,一下是四种不同的格式,实现都很简单: 操作步骤如下: 第一步:你需要申请一个微博(weibo.com)的账号 如…

php网站开发案例教程ppt,php网站开发案例教程》课件.ppt

php网站开发案例教程》课件.ppt还剩178页未读,继续阅读下载文档到电脑,马上远离加班熬夜!亲,很抱歉,此页已超出免费预览范围啦!如果喜欢就下载吧,价低环保!内容要点:PHP网…

大型网站系统架构分析--转

大型网站系统架构分析 原文地址:http://www.cnblogs.com/Mainz/archive/2009/04/28/1445424.html 千万级的注册用户,千万级的帖子,nTB级的附件,还有巨大的日访问量,大型网站采用什么系统架构保证性能和稳定性&#xf…