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

news/2024/5/20 13:55:09/文章来源:https://blog.csdn.net/weixin_33724570/article/details/92647434

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

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

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

相关文章

新书推荐:网站交互设计模式

新书推荐:网站交互设计模式【作  者】(美)Douglas K.Van Dugne;James A.Landay;Jason I.Hong [同作者作品] [作译者介绍] 【译  者】 孙昕;焦洪[同译者作品] 【出 版 社】 电子工业出版社 【书 号】 9787121092046 【上架时间】 2009-7-24 【出版日期】…

html5游戏网站欣赏,70多个HTML5网站设计欣赏

70多个HTML5网站设计欣赏7月 6, 2011评论SponsorHTML5网站确实很不错,能帮助设计师解决很多美化问题外,还能提高更好的用户体验,制作出高效的网站,所以我们应该开始学习CSS3和HTML5这些技术了,不要老是被国外超越我们&…

高并发、高可用、大数据量网站系统演化

一、初始阶段的网站架构 应用程序、数据库、文件等所有资源都在一台服务器上 二、应用服务和数据库服务分离 整个网站使用三台服务器:应用服务器、文件服务器、数据库服务器 应用服务器需要更强大的CPU 文件服务器需要更大的磁盘空间 数据库服务器需要更快的硬盘和更…

WordPress网站漏洞利用及漏洞修复解决方案

2019年正月刚开始,WordPress最新版本存在远程代码注入获取SHELL漏洞,该网站漏洞影响的版本是wordpress5.0.0,漏洞的产生是因为image模块导致的,因为代码里可以进行获取目录权限,以及文件包含功能,导致远程代…

docker容器源码部署httpd,用存储卷部署网站

docker容器源码部署httpd,用存储卷部署网站 创建一个httpd镜像 // 创建一个httpd容器 [rootlocalhost ~]# docker run -tid --name httpd centos 2d693e16f4f3734b127cbae90d189c1b4e78619a54ceec912a82d96cf4f1c345 [rootlocalhost ~]# docker ps CONTAINER ID …

java jsoup爬取动态网站_java笔记|爬取华软mysise所有课程信息

本次内容:使用java爬取网页数据,并进行数据清洗,熟悉爬取操作;爬取华软课程信息:http://class.sise.com.cn:7001/sise/index.jsp//源码package com.sise.studentInfoSystem.demo;import com.sise.studentInfoSystem.be…

win7关于无线连接的服务器,win7怎样解除无线连接限制_网站服务器运行维护,win7,无线连接...

win10系统如何重置密码_网站服务器运行维护win10系统重置密码的方法是:1、右键点击开始图标;2、在弹出的选项列表中,点击选项【Windows PowerShell(管理员)】;3、执行命令【net user 用户名 新密码】即可。win7解除无线连接限制的…

网站服务器和seo,网站所在服务器与网站SEO排名之间的关系

想让你的网站在搜索引擎中获得好的排名,得到更多的客户认可。作为一个合格的SEOer,你就得把网站服务器作为一个重要事项来做。大家都知道网站是由域名、服务器及页面文件组成的,从这个你也就可以看出服务器的重要性。SEO优化包含的面非常广&a…

java 热点词排名_利用seo技术排名热点新闻词引流(日IP增加2万+)

一个很普通的热点,很容易被各大媒体平台炒到高流量,所以很多人希望能够通过新闻热点来蹭到一部分流量,但大多数的情况下,百度上的新闻热点内容都被大平台拿走了,咱们今天也来教教大家,如何拿到一部分热点流…

调试-Chrome删除某个特定网站的Cookie

方法1 设置 → 高级 → 隐私设置和安全性 → 网站设置 → Cookie和网站数据 → 查看所有Cookie和网站数据 方法2 设置 → 搜索框中输入“Cookie”→ 根据提示一个个点开选项卡找即可

一个可以动态创建响应动画GIF的网站,AjaxLoad

呵呵,使用Ajax做Web开发的必备品看看样式:呵呵,还有许多样式,如果你想要,可以到这个网站自己生成喔http://www.ajaxload.info/ 转载于:https://www.cnblogs.com/fengmk2/archive/2006/10/21/535988.html

服务器搭建个人网站(阿里云服务器)

服务器搭建个人网站 一丶购买服务器 这里我选的是阿里云服务器,进入阿里云官网阿里云-上云就上阿里云 阿里云提供了几种服务器,云服务器ESC、轻量应用服务器,ESC更好一点儿,我选了轻量级应用服务器。购买好了之后,在…

每天第一个登录sharepoint 网站的人

在IIS里面设置下: 1.找到你的sharepoint站点对应的应用程序池; 2.设置这个应用程序池的回收时间。 不想每天早上速度慢,就取消回收啦。呵呵! 远程桌面连接-148.71-666666-开始程序-IIS管理器-Internet信息服务-应用程序池-ShareP…

网站能带来什么

网站到底有什么用?如果说社交网站能为网友带来朋友,新闻网站能为网民带来信息,视频网站能给网民娱乐,那企业网站到底能带来什么?或者说是给企业或者给网民客户带来什么? 网站现在到处都是,并且现…

宝塔绑定域名访问不了_千字长文教你使用 宝塔面板 快速搭建网站

本文将教大家使用 宝塔面板 快速搭建网站,云服务器购买 以及 域名注册 部分请自行上网搜索了解,亦可留言联系小编进行咨询。如果是和下方一样本地搭建演示的话,则不需要付费购买域名和主机。宝塔面板 的是 提升运维效率 的 服务器管理 软件&a…

seo代码优化工具_大咖带你玩转企业SEO搜索引擎优化视频

搜索引擎营销作为现代企业常见的一种网络营销方式,对于提升企业品牌曝光已经口碑有着重要的营销价值。本课程主要讲解的知识包括搜索引擎工作原理、SEO必备工具、关键词选择方法、网站首页/URL/TDK标签优化技巧、SEO站内优化、代码优化及外链优化等。学员通过学习可…

不同网站不同网卡_【网站推荐】丰富导出,满足不同人群不同需求

由于微信公众号调整了推送的排序机制,目前是根据大家对公众号的喜欢程度、阅读频率来【智能排序】,如果是你不常用不常访问的公众号,出现在订阅号列表中的频率就会越来越低,所以为了不错过猿猿的干货分享,大家可以给“…

解决Asp.net Web网站发布到服务器上运行时,某界面传参数过多,造成的“此请求的查询字符串的长度超过配置的 maxQueryStringLength 值”错误。...

今天遇到了一个以前没遇到过的问题,网站在本地运行时是没有任何问题的。昨晚调试好的,本来以为今天可以舒一口气,结果为了确保系统稳定性,我再一次发布到了服务器上测试新增的功能。还真别说,一发布到服务器上&#xf…

网易云音乐刷听歌量_还有人记得这个网站吗? 网易云音乐一键刷听歌量,1s听歌300首。...

戳上方蓝字关注『教程姬』,获取更多软件干货&教程!这一切都要从一只蝙蝠说起……在家闲的无聊,在某云领了一个月的试用云服务器。1G内存1M宽带,是真的垃圾。不过对于我这样的小白来说,也够用了。所以就上传了网站源…

js百度地图信息窗口添加链接_网站百度秒收录方法大全

快速收录操作步骤近期普遍困惑站长的收录问题,本人给各位提供个详细的操作步骤说明,实测有效,不喜勿喷,相互交流。1.注册百度资源平台账号https://ziyuan.baidu.com/1、添加站点用户中心-站点管理-添加站点2、按照要求添加&#x…