文章目录 ​​Loadbalancer(负载均衡器)​​ ​​请求传输拆解​​ ​​DNS负载均衡​​ ​​客户端负载均衡​​ ​​OSI七层模型回顾​​ ​​2层、3层负载均衡​​ ​​3/4层负载均衡​​ ​​7层负载均衡​​ 在 第一节谈到了系统的横向扩展在于从单机扩展到多机,那么面临的第一个问题就是这些机器如何协同工作,即如何调度请求? Loadbalancer(负载均衡器) 多服务器下的请求调度机制称为负载均衡(Loadbalancing),调度器(Dispatcher)即负载均衡器(Loadbalancer):负载平衡器的基本功能是能够根据调度算法在集群中的多个后端服务...

文章目录 ​​Web代理服务​​ ​​反向代理​​ ​​反向代理作用​​ Web代理服务 Web代理服务指的是在客户端资源请求和提供这些资源的Web服务之间充当中介的角色,代理服务可以实现在客户端,或者从客户端到目标服务器中间的任意环节。例如,客户端不直接向提供目标资源的Web服务发起请求,而是带上目标资源的完整URL去请求代理服务: GEThttp://en.wikipedia.org/wiki/Proxy_serverHTTP/1.1Accept:text/html 代理服务收到之后,(由代理服务来)请求指定资源并将响应结果转发给客户端: HTTP/1.1200OK...

文章目录 ​​网络传输可靠性​​ ​​将微服务控制下沉到网络栈?​​ ​​Sidecar​​ ​​从Sidecar到ServiceMesh​​ ​​ServiceMesh+部署平台​​ ​​参考​​ 网络传输可靠性 从计网的学习过程中我们可以知道数据在网络传输中可能会出现一些异常状况: 数据丢失:数据包可能会到达一个缓冲区已经被塞满的路由器,接着被丢掉 顺序出错:一组数据包可能会途径闲忙程度不同的多个路由器,出现不同程度的延迟,最后到达顺序会与发出时的顺序不一致 这些丢包重发、顺序重组等控制机制已经由网络协议栈帮我们实现好了,使开发人员更加关注业务层次:在微服务架构中,则需要...

文章目录 ​​应用层​​ ​​微服务架构​​ ​​服务注册查询ServiceDiscovery​​ ​​客户端ServiceDiscovery​​ ​​DNS-SDDNS-basedServiceDiscovery​​ ​​服务端ServiceDiscovery​​ ​​服务注册与注销​​ ​​自注册模式​​ ​​第三方注册模式​​ ​​总结​​ ​​参考​​ 应用层 在简单的3层结构中,Web服务层既要处理请求,又要承载业务功能:而更优的结构是把Web层与应用层(也叫平台层)分开:这样的优势在于: 能够单独扩展应用层;允许独立加机器、换专用机器 复用基础设施:简化多端...

文章目录 ​​数据库扩展​​ ​​一致性问题​​ ​​Replication(复制)​​ ​​异步复制​​ ​​同步复制​​ ​​半同步复制​​ ​​拓扑结构​​ ​​单主结构​​ ​​多主结构​​ ​​无主结构​​ ​​复制具体措施​​ ​​参考​​ 数据库扩展 之前在第一章后台系统可扩展性学习笔记(一)概要谈到:理论上,有了可靠的负载均衡机制,我们就能将1台服务器轻松扩展到n台,然而,如果这n台机器仍然使用同一数据库的话,很快数据库就会成为系统的性能瓶颈和可靠性瓶颈,所以我们需要对于数据库进行扩展。 纵向扩展:提升单机配置(硬盘、内存、CPU等等),但同样会遭遇单机...

之前的两篇笔记中谈到了从单库扩展到多库以承载更多的请求量以及单库(表)拆分成多库(表),打破单库的性能瓶颈。这都是为了应对大数据量下的措施。然而,除却数据量外,还有一个极其影响单库性能的因素——数据的组织方式。对于关系型数据库,我们可以尝试在一定程度上改变数据的组织方式,即反范式化(Denormalization) 关于范式 可以参考以前做的笔记:​《MySQL——数据表设计三大范式》​设计范式相当于数据层的设计模式,对数据表进行解耦,使单表信息更加内聚,彼此边界分明,依赖关系更加清晰.试想,如果相同的信息在多行中重复出现,不相干的信息也凑在同一张表中,就很容易出现一些异常情况: 更新异常:...

为了提升数据库的处理能力,我们把单库扩展成多库,并通过更新同步机制(即Replication)来保证多份数据的一致性。然而,在各种复制方案下,每个数据库都持有一份完整数据,基于全量数据提供增删改查服务,单库的性能瓶颈仍然存在,并将成为限制系统扩展性的关键因素。 单库性能瓶颈 单机的硬件资源是有限的,因此单库的处理能力也是有限的: 容量有限:数据量可能大到单库无法容纳 性能有限:单库的读写性能同样受数据量影响,查询/更新越来越慢 单靠加机器/加库显然无法直接解决单机/单库的性能问题,除非进一步打破库的边界,把单库拆分成多库(而不只是复制多份)理论上,Web应用层也面临同样的问题,却不曾听说过...

文章目录 ​​在哪儿加缓存​​ ​​缓存什么内容​​ ​​缓存原始查库结果​​ ​​缓存数据对象​​ ​​怎么查询缓存结果​​ ​​预留缓存模式​​ ​​直读模式​​ ​​直写模式​​ ​​回写式缓存​​ ​​绕写式缓存​​ ​​提前刷新模式​​ ​​缓存满了如何处理​​ ​​参考​​ 读写分离、分库分表、反范式化、采用NoSQL……如果这些扩展手段全都上了,数据响应依旧越来越慢,还有什么解决办法吗? 有,加缓存。 利用缓存层来吸收不均匀的负载和流量高峰。 在哪儿加缓存 理论上,在数据层之前的任意一层加缓存都能够阻挡流量,减少最终抵达数据库的操作请求:按缓存所处位置分...

文章目录 ​​概念梳理​​ ​​CDN拓扑结构​​ ​​CDN内容分发方式​​ ​​架构原理​​ ​​工作原理​​ ​​实现原理​​ 概念梳理 CDN(ContentDeliveryNetwork,内容分发网络)是由分布在不同地理位置的代理服务器及其数据中心组成的网络,希望在空间距离上为用户就近提供服务,以提高可用性和性能。(空间距离体现在网络传输上就是跳数(hop),从客户端到服务器所经过的跳数越多,距离越远,一般延迟也越大)CDN一般用来托管Web资源(包括文本、图像和脚本),可供下载的资源(媒体文件、软件、文档等),应用程序(电子商务、门户网站等),以及流媒体和社交媒体网...

关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~