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

news/2024/5/9 12:17:38/文章来源:https://blog.csdn.net/weixin_33947521/article/details/92647473

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

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

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

相关文章

IIS如何发布本地ASP.NET的网站或service

首先,在Visio Studio中将网站rebuild解决方案之后,在解决方案的窗口中邮件选择“publish”,然后指定文件夹; 具体请参考: 打开IIS(Internet Information Services)管理器 右键网站–>“添加…

域名证书是什么样子的_教你GitHub pages开启Https访问、自定义域名和CDN网站加速...

httpsGitHub page是什么?我只是简短讲一讲自己的理解,更详细的还请自行搜索,如果错误还请指出。GitHub pages 是一个能存放静态资源的服务器。你可以把它当做apache服务器使用。同时支持使用自定义域名解析,而且也支持HTTPS加密访…

dota2自建房间服务器,创建房间与房间设置 - DOTA2 - 刀塔官方网站 - 勇士令状全新上线 天陨旦活动模式推出...

在创建房间界面选择创建房间玩家进入天辉或者夜魇下面的空位,解说员进入解说频道。点击编辑设置可以进入设置界面可以给房间加密码,其他玩家可以用过密码来寻找这个房间,可以给房间起名字,如果单机测试可以勾选启用作弊、用AI玩家…

怎么在服务器上复制网站,云服务器 复制站点

云服务器 复制站点 内容精选换一换云服务器备份的约束限制如下:一个服务器只可加入一个备份策略。支持备份服务器中的共享云硬盘。支持选择服务器中的部分云硬盘进行备份,但必须将备份的云硬盘作为整体进行恢复,且不支持文件或者目录级别的恢…

先写html再写php,在做网站先写html还是css?哪种效果比较好

很多程序员在制作网站的时候都会有一个问题,不知道是先写html还是css,想知道有经验的程序员是先写css还是写html吗,接下来我们来看一下高手的步骤是怎样的。为此,小编上网百度,发现也有很多答案,有的高手是…

检查域名是否可以访问_域名续费后访问网站显示域名过期的原因

有时我们可能会忘记给域名续费,导致网站域名过期。但是我们在续费之后网站依然显示域名过期是怎么回事?域名续费后访问网站显示域名过期的原因域名续费后访问网站显示域名过期的原因一、域名续费后解析是否生效在域名续费后,域名的解析记录通常会在2-24…

JSON.parseObject(String str)与JSONObject.parseObject(String str)的区别

一、fastjson fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。其主要特点是: ① 快速:fastjson采用独创的算法,将parse的速度提升到极致,超过所有基于Java的json库&…

网站内容禁止复制的js代码

网站内容禁止复制的js代码 这篇文章主要介绍了JS如何实现网站内容禁止复制的方法&#xff0c;希望可以帮助到你~ 方法1&#xff1a; 在网页中加入以下代码&#xff1a; <script language"Javascript"> document.οncοntextmenunew Function("event.ret…

idea 快速导入实现父类方法_快速让网站实现10000+流量方法

一、友情链接友情链接无疑是作用最好的外链&#xff0c;有些情况下一个友情链接的作用可能等价于几百个甚至上千个论坛外链的作用&#xff0c;所以说要想明显地提升网站权重或是关键词排名&#xff0c;最有效的办法就是获得高权重的友情链接。在实际工作中主要是通过以下几个方…

python3.7.4游戏代码,推荐4个 Python 的编程游戏网站

↑关注 星标 &#xff0c;每天学Python新技能后台回复【大礼包】送你Python自学大礼包转自 Python编程时光学习编程虽然对有些人来说是件乐事&#xff0c;但是对大多数人来说仍然是一件比较枯燥困难的事情。当然&#xff0c;面临这样困惑的人并不是你一个。于是就出现了许多通…

WordPress站点地图html代码,wordpress代码实现网站地图sitemap的html和xml的方法

直接在原作者的基础上做了一些小小的修改&#xff0c;原理很简单&#xff0c;就是自动调用Wordpress的文章、分类、页面。当然如果怕麻烦也可以使用baidu sitemap generator这个插件&#xff0c;也是非常不错的插件。今天介绍的就是不使用插件完成wordpress代码实现网站地图sit…

php安装docsify,docsify - 无需构建快速生成文档网站

docsify无需构建快速生成文档页特性无需构建&#xff0c;写完 markdown 直接发布支持自定义主题容易使用并且轻量快速上手创建项目新建一个空项目&#xff0c;接着创建一个 docs 目录并进入到 docs 目录下mkdir my-project && cd my-projectmkdir docs && cd d…

哪里有模板建站配云服务器销售,模板建站配云服务器费用

模板建站配云服务器费用 内容精选换一换本节操作介绍华为云上云服务器的跨账号跨区域迁移&#xff0c;建议采用镜像迁移方式。服务器迁移的常见场景与常用的迁移方式请参考迁移的背景知识。跨账号跨区域迁移的方法请参考方案介绍常见的服务器迁移场景包括物理服务器与云服务器之…

【Python3 爬虫】06_robots.txt查看网站爬取限制情况

大多数网站都会定义robots.txt文件来限制爬虫爬去信息&#xff0c;我们在爬去网站之前可以使用robots.txt来查看的相关限制信息例如&#xff1a;我们以【CSDN博客】的限制信息为例子在浏览器输入&#xff1a;https://blog.csdn.net/robots.txt获取到信息如下&#xff1a;从上图…

海洋工作室——网站建设专家:FOXMAIL 自动收发设置

你的邮箱单击右键&#xff0c;选择“属性”&#xff0c;然后在弹出的对话框里选择“收邮件”&#xff0c;下面有个“每隔 自动收邮件”把它前面的勾选上&#xff0c;然后在里面填上你希望的时间间隔。 图片操作请参考下图:

SharePoint 2010新建站点不能登录解决方法

SharePoint 2010新建站点不能登录解决方法 近期在使用SharePoint 2010&#xff0c;今天我在一台新服务器上&#xff08;单服务器&#xff0c;无域环境&#xff09;&#xff0c;新建了一个SharePoint 2010的站点&#xff08;先创建Web应用程序&#xff0c;再创建网站集&#xff…

flash 多张相片同时移动_如何从SEO优化的角度来打造一个移动网站

移动互联网的发展已经影响了人们生活的很多关键领域&#xff0c;在最近的这两年内&#xff0c;资讯类网站的形式已经到了一个“临界点”&#xff0c;读者了解获取新闻消息几乎都是通过手机或平板电脑&#xff0c;其内容生产方式也发展成为响应式设计网站&#xff0c;那么&#…

虚拟主机怎么做云服务器,云虚拟主机怎么安装网站程序?

云虚拟主机怎么安装网站?虚拟主机安装网站怎么操作呢&#xff0c;首选需要给虚拟主机绑定域名&#xff0c;接着到域名管理处解析处添加解析记录&#xff0c;此后给虚拟主机安装网站系统&#xff0c;这样的话就安装好一个网站。一般的云虚拟主机可以安装哪些网站?虚拟主机可以…

图片大_36个精美的大背景图片网站设计

大型背景网站设计已成为Web开发领域中的热门话题。使用大图像作为背景会对用户产生影响&#xff1b;它吸引了他们&#xff0c;并促使他们进一步探索。这种设计技术被证明是最小的&#xff0c;但却可以确保一次又一次的极好的用户体验。以下是精美执行的大型图片网站设计的20个示…

element做树形下拉_做SEO有何技巧?

做SEO有何技巧&#xff1f;SEO&#xff08;Search Engine &#xff09;汉译为搜索引擎优化。搜索引擎优化是一种利用搜索引擎的搜索规则来提高目前网站在有关搜索引擎内的自然排名的方式。SEO的目的理解是&#xff1a;为网站提供生态式的自我营销解决方案&#xff0c;让网站在行…