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

news/2024/5/12 2:38:13/文章来源:https://blog.csdn.net/weixin_34194551/article/details/92650769

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

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

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

相关文章

大型网站技术架构(四)网站的高性能架构

2019独角兽企业重金招聘Python工程师标准>>> 网站性能是客观的指标,可以具体体现到响应时间、吞吐量、并发数、性能计数器等技术指标。 1、性能测试指标 1.1 响应时间 指应用执行一个操作需要的时间,指从发出请求到最后收到响应数据所需要的时…

eclipse jsp没有提示_JSP+Spring+SpringMVC+Hibernate+Mysql实现的校园失物招领网站

项目简介项目来源于:https://github.com/wenlongup/LostAndFound因源github仓库无数据库文件,经过本人修改,现将该仓库重新上传至个人gitee仓库。张有路/LostAndFound​gitee.com本系统基于JSPSpringSpringMVCHibernateMysql的校园失物招领网…

asp网站短信api服务器,asp程序调用短信接口源码

asp程序调用短信接口源码更多作者:捷信通来源:www.jiexintong.cn日期:2014-07-31 17:59:31现在很多启用还在使用asp程序,我们技术总结出了asp程序调用短信接口源码例子,请参考,如果有疑问,欢迎各位客户联系我们:企业QQ…

域名+解析+GitHub来搭建自己的个人网站

域名解析GitHub来搭建自己的个人网站 标签: GitHub使用技巧 网站搭建 版权声明:本文为 icurious 的原创文章,可以转载,但请务必注明作者和出处!!! 原文链接:www.blankspace.cn 摘…

coursera网站课程视频无法播放?

本人为win10系统,在coursera网站修了几门课程,发现无法查看课程视频。 尝试解决一下: 1. 以管理员身份打开记事本 2. 在记事本中打开系统hosts文件 TIP:一般在C:\Windows\System32\drivers\etc 路径下 3. hosts文件中最后一…

屏蔽网站广告的Chrome谷歌浏览器插件推荐和下载地址

推荐插件: AdGuard AdBlockerAdvertising TerminatorAdBlockAdblock Plus 下载地址: Chrome插件下载官方下载

解决 python 向网站请求数据出现 check_hostname requires server_hostname 错误

问题背景 更新了python的一些库后,发现原来能用的爬虫现在不能用了,尴尬。然后网上找了一下,发现是更新库造成的,check_hostname requires server_hostname 错误 是由于新版本的 urllib3 而出现的,一个简单的解决办法是…

给网站添加建站时长的js代码

背景 老板让我给他写个人主页&#xff0c;然后用到了这个东西&#xff0c;记录下 代码 <!--这是html代码&#xff0c;放在你想显示建站时间的地方&#xff0c;样式啥的自己改就行--> <span id"sitetime" style"color: rgb(248, 247, 247);">…

给网站添加访问地图3d版,平面版

背景 给老板写个人主页的时候用到的&#xff0c;记录下 效果展示 3D版 平面版 实现 打开 https://clustrmaps.com/site/1bf58&#xff0c;创建一个小部件 输入你要统计的网站地址 选择你要那个版本的 3D版&#xff0c;右边那个 点进去有相应的js代码&#xff0c;复制就行…

利用不蒜子统计网站的访问量

背景 给老板写个人主页&#xff0c;用到了记录下 代码 <head><script type"text/javascript" src"https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script> </head><body><div style"color:…

php制作小米网页版,基于LNMP的小米电商网站搭建——运维实战手记第一篇

分享一篇文章&#xff0c;来自马哥教育学员阿龙。总项目流程图&#xff0c;详见Linux运维企业架构实战系列 - 阿龙along - 博客园实战一&#xff1a;搭建lnmp及类小米等商业网站的实现环境&#xff1a;关闭防火墙&#xff0c;selinux1、安装包&#xff0c;开启服务yum -y insta…

h5实现网页内容跟随窗口大小移动_H5网站建设设计有哪些优势?

近些年随着h5网站建设的普及&#xff0c;越来越多的网站采用这一建站方案。h5网站建设有什么优势呢&#xff1f;今天小编和各位来聊聊h5网站建设的优势。随着Flash的终结&#xff0c;h5技术取代了Flash在移动设备中的地位&#xff0c;成为移动平台的唯一标准。在HTML5的应用场景…

vba获取正在运行网站的源码_早日学习VBA,早日上手VBA,早日受益VBA

在平台上&#xff0c;我讲解VBA已经有一年多了,有些朋友能理解VBA的可用之处&#xff0c;但仍有人不断在问:VBA可以做什么呢?应用VBA有什么好处呢&#xff1f;确实&#xff0c;很多的朋友在职场中久了&#xff0c;延续着前人的习惯&#xff0c;有些时候应该改一下了&#xff0…

电子商务网站建设策划书服装_分享:服装设计/服饰公司企业网站(官网)建设制作策划方案...

分享&#xff1a;服装设计/服饰公司企业网站(官网)建设制作策划方案&#xff01;随着市场经济的发展&#xff0c;我国的服装企业开始由卖方市场转为买方市场&#xff0c;各个品牌为了生存开始在这个市场中厮杀&#xff0c;较以往相比&#xff0c;现在企业的利润率逐渐下降&…

winscp远程访问服务器运行代码没有图片_软卓学堂 | 从购买服务器和域名到搭建网站...

◆ ◆ ◆ ◆从购买服务器和域名到搭建网站◆ ◆ ◆ ◆使用工具&#xff1a;Xshell终端模拟器&#xff1a;Xshell是一个终端模拟软件&#xff0c;而且是远程近程都可以。就是模拟服务器所在的linux&#xff0c;在xshell中可以输入命令&#xff0c;就像在服务器的linux中输入命令…

php模板页文件什么名称,wordpress建站程序都有哪些模板文件?模板文件名称叫什么?...

wordpress建站程序是一款基于PHP语言所开发出来的开源网站程序&#xff0c;同时它也是当前使用最多的开源建站程序。通过wordpress建站程序你可以搭建企业网站、个人网站、门户网站、新闻资讯站、商城网站、bbs论坛网站等等。而决定网站前端风格类型的主要因素就是我们今天所要…

搭建asp.net网站

ASP.NET开发学习视频教程大全&#xff08;共800集&#xff09; http://blog.chinaunix.net/uid-25454054-id-3450228.html由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。错误&#xff1a;HTTP 错误 404.3 - Not Found由于扩展配置问题而无法提供您…

https php.iis.net,在IIS上部署PHP网站

1、启动iis服务器&#xff0c;打开IIS服务器打开IIS服务器&#xff0c;点击网站&#xff0c;右击“添加网站”2、创建网站点击“添加网站”后&#xff0c;进入页面填写网站相关内容&#xff0c;如&#xff1a;网站名称、物理路径(网站所在文件夹),点击“确定”创建成功3、PHP设…

御用导航官方网站提醒提示页_未更新路线的导航软件坑了来厦游客!想自驾去鼓浪屿 被引导到轮渡码头乘船...

原来的导航路线会把游客指引到轮渡码头更新后的地图导航已将自驾的路线更新至东渡邮轮中心码头台海网7月24日讯 据厦门日报报道 外地游客驾车来厦旅游&#xff0c;通过手机地图导航“鼓浪屿风景名胜区”&#xff0c;被引导到轮渡码头乘船。到码头买票时&#xff0c;却被告知需前…

腾讯翻译君在线翻译怎么翻译整个文件_PDF文档如何直接翻译?有了这个逆天网站,3秒完成整个文件翻译...

在工作中只要提前PDF文件&#xff0c;很多人都头疼&#xff0c;因为PDF格式的文件不能直接进行操作&#xff0c;遇到像编辑、翻译很多人苦恼找不到好的方法&#xff0c;今天小编来教大家一招&#xff0c;只要你拥有了这个网站&#xff0c;PDF文件翻译就So easy&#xff01;方法…