大型网站之伸缩篇

news/2024/5/20 13:54:58/文章来源:https://xiyuan.blog.csdn.net/article/details/102328587

网站的伸缩性架构(伸缩性)

绝大数网站都是渐进式成长的,在这个过程中最重要的技术是就是使用服务器集群,通过不断地向集群中添加服务器来增加整个集群的处理能力。

网站架构的伸缩性设计
网站的伸缩性设计分为两大类

  • 根据功能进行物理分离实现伸缩,即不同的服务器部署不同的服务,提供不同的功能。(前期 趋向于分层)
  • 单一功能通过集群实现伸缩,即集群内多台服务器部署相同的服务,提供相同的内容。(后期 在分层的基础上分割)

集群伸缩性可以细分为应用服务器集群伸缩性和数据服务集群伸缩性。

应用服务器集群的伸缩性设计

负载均衡是网站必不可少的基础技术手段,不但可以实现网站的伸缩性,同时还改善网站的可用性。
常见负载均衡的方法有

  • 利用Http重定向负载均衡,即利用nginx中的rewirte模块来实现。(客户端行为,不需要服务器转发响应,这种方法性能比较差)

  • DNS域名解析负载均衡,DNS负载均衡的控制权在域名服务商中,通常作为第一级负载均衡手段。(不需要服务器转发响应)

  • 反向代理负载均衡,即利用nginx中的upstream模块来实现(配置简单,但性能也有局限性,响应要通过反向代理服务器返回给客户端)

  • IP负载均衡,即利用网关服务器实现负载均衡(性能有提升,响应要通过网关服务器,受限于其网卡带宽)

  • 数据链路层负载均衡,在通讯协议的数据链路层修改mac地址进行负载均衡。(不需要服务器转发响应,最常见的是LVS)

负载均衡算法
轮询:所有请求被依次分发到每台应用服务器上,即每台服务器需要处理的请求数目都相同,适合于所有服务器硬件都相同的场景。
加权轮询:在轮询的基础上,按照配置的权重将请求分发到每个服务器,高性能的服务器能分配更多的请求。
随机:请求被随机分配到各个应用服务器,即使应用服务器配置不同,可以加权随机算法。(这种方法最常用)
最小连接:记录每一个应用服务器正在处理的连接数,将新的请求分发到最少连接的服务器,也支持加权最小连接。
源地址散列:对请求的IP地址进行hash计算,实现同一个IP地址的请求总在一个服务器上处理。(实现对有状态应用服务器高可用的一种方式)

分布式缓存集群的伸缩性设计

分布式缓存服务器集群中不同服务器中缓存的数据各不相同,缓存访问请求不可以在缓存服务器集群中的任意一台处理(服务器是不对等的),
必须先找到缓存有需要数据的服务器。

分布式缓存集群伸缩性设计的主要目标:
1.新上线的缓存服务器对整个分布式缓存集群影响尽肯能小
2.原有的缓存数据尽可能还能被访问

memcached分布式缓存访问模型
在这里插入图片描述
路由算法负责根据应用程序输入的缓存数据KEY计算得到对应的缓存服务器。(读写缓存对应的服务器)
借助分布式缓存的一致性Hash算法和虚拟节点(一台物理即通常虚拟成150)的思想,可以大大减少新节点的影响。
这样可以做到迁移尽可能少的数据。
在这里插入图片描述
一致性Hash算法可以根据不同的属性参数(通常是IP和端口号),生成一串不相同的Hash值,并将Hash值转换成0-2^32-1的整数,
不同范围的值由不同服务器进行处理。(B-C之间的由B处理)

数据存储服务器集群的伸缩性设计

a.关系数据库集群的伸缩性设计
MyCat,这个是基于阿里巴巴的Cobar方案优化而来,支持半自动化分片、join。
Cobar本身是一个分布式关系数据库访问代理,介于应用服务器和数据服务器之间。
数据库是对底层存储文件的抽象,而Mycat是对数据库的抽象。

b.NoSql数据库的伸缩性设计
以HBase为例,HBase的伸缩性主要依赖器可分裂的HRegion(原理是LSM树)以及可伸缩的分布式文件系统HDFS实现。

在这里插入图片描述

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

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

相关文章

大型网站之扩展篇

网站的可扩展架构(扩展性) 伸缩性:通常指利用集群的方式增加服务器数量、提高系统的整体事务吞吐能力。 扩展性:指对现有系统影响最小的情况下,系统功能可持续扩展或提升的能力。 网站的可扩展性,依托于系…

大型网站之安全篇

网站的安全框架(安全性) a.黑客攻击 XSS攻击 XSS攻击即跨站点脚本攻击,指黑客通过篡改网页,注入恶意HTML脚本,在用户浏览网页时,控制用户浏览器进行恶意操作的一种攻击方式。 常见的XSS攻击分为 反射型&am…

使用openssl 模拟ca进行证书的申请和颁发,并使用证书部署网站的安全连接访问,即https的加密通信

亲测,已经建立了https链接 参考链接: https://blog.csdn.net/guoxiaojie_415/article/details/80554109 https://www.cnblogs.com/kezi/articles/11512420.html

浏览器版本过高导致无法访问网站 burpSuiteBrowser

错误: 建立安全连接失败 连接到 172.24.11.101 时发生错误。对等端使用了不支持的安全协议版本。 错误代码:SSL_ERROR_UNSUPPORTED_VERSION 由于不能验证所收到的数据是否可信,无法显示您想要查看的页面。 建议向此网站的管理员反馈这…

js 获取服务器ip_如何提高香港服务器网站的访问速度

从选择服务器上入手1.选择直连国内网络骨干的机房 直连国内网络骨干机房通常节点都比较少。通常数据在经过路由器进行转发时,都需要花费一定的时间,因而节点比较少的机房,它所提供的香港服务器多相对快一些,具体我们可以通过ping服…

php一维数组合并为二维数组,php输出数据并转换成若干一维数组最后合并为一条二维数组 - 傲世零零个人技术网站...

代码功能:php输出数据并转换成若干一维数组最后合并为一条二维数组//数据库连接require(db.php);//查询语句$sql2 "select * from xc_pic where xcid89 ";$result2 mysql_query($sql2,$conn);$dd0;while($row2 mysql_fetch_array($result2)){$dd$dd1…

逆向某电影网站signKey参数

1.打开我们要获取数据的页面 这里我们可以看到,这个有个加密参数signKey,猫眼好像改了,这个页面一些东西变成动态渲染了。他会发送一个请求去请求这个数据 我们打开这个页面,可以看到 这里面都是我们要的参数,像评分呀…

补某视频网站的js,进行视频解密

前言: 前不久,有个群友在群里发了一个视频的m3u8文件,其中的key是16字节,但是就是无法进行下载。但是用m3u8下载器进行下载时,无法下载下来,我开始怀疑是有请求头检验,用代码请求了一下&#x…

java web gzip_java使用gzip对静态资源的压缩,提供web网站访问速度

一、gzip简介Gzip是若干种文件压缩程序的简称,通常指GNU计划的实现,此处的gzip代表GNU zip。也经常用来表示gzip这种文件格式。软件的作者是Jean-loup Gailly和Mark Adler。在1992年10月31日第一次公开发布,版本号0.1,1993年2月&a…

Web大作业-关于创业计划网站制作的第二天......

嘶......转专业真的是麻烦,前有C语言大作业算法实现,现有Web工程网页要做..... 贴几张预览图吧,第一部分算是完成了,接下来还有两个部分,分别是宣传视频和个人计划的安排。 另外,学校的校园网真菜&#x…

Web大作业-关于创业计划网站制作的第三天......

代码都是我一行一行敲下来的,虽然我相信得分不会很高(确信)。 但是第二部分算是完成了,就是宣传视频部分,让三个网页互相连接,其实我还想用用js把网站写活,奈何能力有限。 第三部分我打算讲述自己的创业计划&#xf…

Web大作业-关于创业计划网站制作的第四天......

主要是登录和注册界面。 还有自己的创业计划。差不多完工了。

5 qlineedit获取内容_SEO内容营销:你应该关注的5个考核指标!

在SEO工作中制定内容营销策略是一个必不可少的工作,毕竟内容为王的时代,任何的营销与推广我们都脱离不了内容,每隔一段时间SEO主管都会对内容营销做复盘,通过数据分析,查看相关指标,是否达到预期。 那么&am…

爬虫学习记录(四)————利用pyquery,re爬取静态网站信息存储到mongodb中

爬虫学习记录(四)————利用pyquery,re爬取静态网站信息存储到mongodb中静态页面爬取引入需要的包定义获取html文件的基本函数定义获取所有详情页的url函数定义解析详细信息的函数将函数链接起来存储到mongodb中链接mongodb的基本参数定义存…

《筑巢引凤:高黏度社会化网站设计秘诀》读书笔记

难怪所有人都想在亚马逊购物,它有其他任何网站都没有的信息——真相(*备注:我们网站的特点:真实性、扩展性) 处于群体之中,围绕群体活动,却又保持个人独立性,这种关系深刻地影响着我…

Java实现一个GUI的SEO软文生成器v1

项目CODE地址: https://code.csdn.net/u012995856/autogenseoarticle/tree/master 效果图: 目录结构: 功能: GUI输入,替换现成模板里的变量,生成新文件 Generator.java package cn.pangPy…

网站搭建的环境配置:Apache+PHP+MySQL

1 网站基本概念 网站说白了就是把一些东西放到哪里供其他人访问,并提供了一些可以交互的接口的地方。如果要实现这样一个地方首先,需要一个能放东西的地方这就是服务器。其次,我们要找到这个地方,然而有很多这样的地方&#xff0c…

ASP.NET MVC5 网站开发实践 - 概述

ASP.NET MVC5 网站开发实践 - 概述前段时间一直在用MVC4写个网站开发的demo,由于刚开始学所有的代码都写在一个项目中,越写越混乱,到后来有些代码自己都理不清了。1月26日晚上在群里跟怒放 他们讨论这个问题,结论是即使只是一个小…

URL访问网站的过程(三次握手、四次挥手),发送RST包的四种情况,常用协议

URL访问网站(三次握手、四次挥手) 1)获得域名所对应的IP地址,若DNS缓存中没有相关数据,则IE浏览器向DNS服务器发出DNS请求,以获取域名所对应的IP地址。 2)IE浏览器与域名地址建立TCP连接&#…

tomcat部署的网站访问不到静态资源

问题描述:javaweb项目,tomcat发布,别人写的工程部署到自己的tomcat上,访问不到静态资源 404错误,但在别人的机器上可正常使用。好久不接触前端代码了,最后发现居然是路径问题。。。。 静态资源在/WEB-INF/…