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

news/2024/5/9 12:24:42/文章来源:https://blog.csdn.net/weixin_34060741/article/details/92655565

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

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

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

相关文章

基于Elasticsearch构建网站日志处理系统

Elasticsearch在离线和在线日志处理场景的应用日志处理可以分为三个场景,离线场景、在线场景,以及流式场景。今天给大家分享的话题是,如何使用Elasticsearch和X-Pack在离线和在线日志处理场景的应用。日志处理系统架构简介我们通过搭建网站日…

网站安全检测服务之PHP代码的后台绕过登录漏洞

针对于PHP代码的开发的网站,最近在给客户做网站安全检测的同时,大大小小的都会存在网站的后台管理页面被绕过并直接登录后台的漏洞,而且每个网站的后台被绕过的方式都不一样,根据SINE安全渗透测试多年来经验,来总结一下…

结合案例教你如何做好SEO搜索引擎优化

这是一个很很普通老生常谈的标题,没有任何的吸引力,但是真正能做好的草根站长估计少之又少,我问我一个做了多年草根站长的朋友,我说如何做好SEO搜索引擎优化,他给我的答复是很难,范围太广了,没法…

WAMPServer自定义网站根目录

一、WAMPServer默认的网站根目录是: 如要改成自己想要的网站根目录: 需要将下图中的httpd.conf打开 然后找到DocumentRoot,并改成自己想要的网站根目录(改两个地方),如图: 然后点击图中的Restar…

如何10分钟建立一个网站

1、将网站模板压缩,并以英文名命名,后缀为zip; 2、在服务器中添加站点,并创建数据库 3、文件-上传安装包并解压 4、查看install文件夹中,有没有文件的后缀为.lock字样,如果有将后缀去掉 5、进入安装界面 6、填写数据库…

威运通:信息时代,网站和安全缺一不可。

企业名称:深圳威运通科技有限公司公司行业:化学品工业公司规模:21-50人建站目的:展示企业理念、公司产品、解决方案网址:https://www.hgq99.com/建站产品:云企业官网--阿里云市场自营建站产品 深圳威运通科…

PHP网站打开太慢,如何解决!

如果你们公司的业务是用PHP语言开发的,那么使用的环境十有八九就是LNMP。在日常的运维工作中,占到9成以上的故障是遇到性能问题。 你可能会想,我们的业务运行的好好的,为啥平白无故就出现性能问题? 原因有太多可能&…

企业网站怎么才能防御DDOS***?

昨天一个政府的站长告诉墨者安全,他想要做一个网络安全防护,因为网站设计到了支付这一块的业务,所以要做网络安全防护,想要实时监测,如果有***发生需要第一时间知道情况。墨者安全告诉他可以的,那今天就讲讲…

大型网站技术架构(二)架构模式

2019独角兽企业重金招聘Python工程师标准>>> 每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复工作。 所谓网站架构模式即为了解决大型网站面临的高并发访问、海量数据、高可靠…

使用github+hexo搭建自己的博客网站--入门篇

前言 这一篇主要介绍如何使用搭建GitHub.io网站 我自己的网站:https://lijie-1024.github.io 使用hexonext主题GitHub搭建,具体问题可以留言问我。 本篇所包含的内容如下: 正文 一、申请github.io网站 github注册我就不讲了。。。能想到这…

网站服务器改数据库密码忘记了怎么办,服务器数据库密码忘记了怎么办

服务器数据库密码忘记了怎么办 内容精选换一换FTP/SFTP连接适用于从线下文件服务器或ECS服务器上迁移文件到OBS或数据库。当前仅支持Linux操作系统的FTP 服务器。连接FTP或SFTP服务器时,他们的连接参数相同,如表1所示。FTP/SFTP连接参数参数名说明取值样…

python过滤违禁词_网站全站敏感词检测、广告违禁词查询很简单,一个python脚本轻松搞定...

做网站的同学都有一个共同的苦恼:就是自己辛辛苦苦经营的网站,如果内容中涉及色情、暴恐涉政、恶意推广、辱骂、违反广告法、涉及违禁品等文本内容,小则被搜索引擎处罚,严重的可能还会被请去喝茶。还有很多企业站因为编辑的不小心…

echarts案例大全,echarts的Demo网站有哪些

很多开发人员用到echarts做大屏展示,一般常用的网站是 Apache Echarts,但是这个一个网站的demo不一定满足我们,那么除了Apache Echarts还有哪些我们可以用的echarts网站呢? 1.分享你我 网站:分享你我 – ECharts 作…

黑苹果未能与恢复服务器_淘客新事件 09.24 1、某千万用户淘客APP内部腐败案 2、误会,大淘客网站疑似被黑!...

1、某千万用户淘客APP内部腐败案评:某淘客APP在昨天公布了他们自家的内部腐败案!大概就是有离职员工后进入竞品公司,还把原公司开发的云发单源码拷贝复制成自己的软件,并且推广到市场!当然这个不算什么,主要…

python 图片文件_初学Python-只需4步,爬取网站图片(附py文件)

很多人学习Python很重要的一个原因是,可以很简单的把一个网站的数据爬下来。尤其是做我们这一行,产品经理,电商行业。领导:弄一个买卖游戏周边商品的交易APP出来。我:行,那我们卖什么呀?领导&am…

程序员入门必备网站 (技术云集的网站)tutorialspoint

https://www.tutorialspoint.com/index.htm 这个网站是印度的一个IT教学网站 前后端技术,应有尽有,还有数据库学习,这个网站很棒,大家,加油~

轻文章-使用URL Rewrite实现网站伪静态

文章目录基础介绍案例代码urlrewrite.xmluserinf.jsp验证结果注意事项参考文档案例来源:《轻量级Java EE企业应用实战(第4版)-Struts2Spring4Hibernate整合开发》,李刚编著 基础介绍 伪静态的作用:将*.jsp、*.php这种…

阿里云服务器Linux主机搭建网站环境

首先准备好连接linux服务器的工具,推荐用xshell和xftp。 xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。 下载地址:http://www.newhua.com/soft/36383.htmXftp 是一个基于 MS windows 平…

linux 画直线 c程序,绘制直线 - Ubuntu+OpenGL程序设计_Linux编程_Linux公社-Linux系统门户网站...

这次主要学习的是关于在opengl中绘制直线,也比较简单现上图吧这图乍一看上去是不是像是一条条弯曲的直线???我开始就把他看成这样了,不过这是个视觉问题,仔细看过起,其实还是一个同心的直线&…

如何得到一个网站的后台地址

一、猜测常见的网站后台 1、http://你的网址/login.asp 2、http://你的网址/admin/login.asp 3、http://你的网址/admin/ /admini/ 二、查看该网站的robots.txt 如:网站为:http://www.mmfi.net/ 在后面添加:robots.txt 得到: …