服务范围广州易企网络公司
服务范围
当前位置:广州易企网络公司 >> 服务范围 >> 浏览文章
服务范围

典型的分布式网站架构

标签:典型,典型的,型的,分布,分布式,网站,架构 发布时间:2024年04月17日 阅读:95次
分布式架构与传统的单机架构最大的区别在于分布式架构能解决两个方向的扩展题目:一是横向扩展,二是纵向扩展。
 
横向扩展,重要用来解决应用架构上的容量题目。因为单台服务器能支持的服务能力始终是有限的,所以我们在架构上就必须做到能够支撑横向服务能力的扩展。最典型的横向扩展是Web/API接人层,它在支撑1亿PV和10亿PV时所必要的服务器数量必然是完全不一样的,因此要考虑当服务器不够用时,它也能支持PV的无穷增加。因此这两层~般都属 于无状况的服务。

典型的分布式网站架构
 
纵向扩展,重要解决营业的扩展题目。当营业赓续扩展时,营业逻辑的复杂度也会赓续上升,所以在架构上要能根据功能的划分进行纵向条理的划分。例如,Web/API层只做页面逻辑或者展示数据的封装,服务层做营业逻辑的封装等。营业逻辑层还可以划分成更多的条理,以支撑更细的营业的组合。
 
一个典型的分布式网站架构。它将用户的请求通过负载均衡随机分配给一台Web机器,Web机器再通过长途调用请求服务层。但是数据层一样平常都是有状况的,而数据要做到分布式化,就必须保证数据的同等性。要保证数据的逐一致性,一样平常都必要对最细粒度的数据做单写控制,因此要记录数据的状况、做好数据的访问控制等。
 
一个有状况的分布式架构。分布式集群中-一样平常都有一个Master负责管理集群中所有机器的状况和数据访问的规制等新疆人事考试,为了保证高可用Master也有备份,Master通常会把访问的路由规则推给现实的请求提议端,如许Client就可以直接和现实要访问的节点通讯了,避免中心再经过一层代理。
 
还有一种分布式架构是非Master-Slave模式而是Leader 推举机制,即分布式集群中没有单独的Master角色北京网页设计,每个节点功能都是一样的,但是在集群的初始化时会选取一个Leader承担Master的功能。一旦该Leader失效,集群会重新选择一个Leader。这种体例的益处是不用单独考虑Master的节点的可用性,但是也会增长集群维护的复杂度。
 
(1)必要分布式中心件
 
夙昔面典型的分布式架构上可以看出,要搭建一个分布式应用体系必须要有支撑分布式架构的框架。例如首先要有一个同一的负载均衡体系( LB/LVS )帮助平均分配外部请求的流量,将这些流量分配到后端的多台机器上,这类设备一样平常都是工作在第四层,只做链路选择而不做应用层解析;应用层的负载均衡可以通过HA来实现网络营销技巧,例如可以根据请求的URL或者用户的Cookie精准地调度流量。
 
请求到达服务层,就必要解决服务之间的体系调用了。这时,必要在服务层构建一个典型的分布式体系,包括同步调度的分布式RPC框架、异步调度的分布式新闻框架息争决静态配置信息的分布式配置框架。这三个分布式框架就像人体的骨骼和经络,把整个服务层连接起来。我们会在后面细致介绍这三个典型的分布式框架(分布式框架的开源产品有许多,例如Dubbo、RocketMQ等)。
 
请求到达数据层。数据层必要解决以下题目:第一,屏蔽不同数据库的差异性,使底层数据库的切换不影响上次应用代码;第二,屏蔽应用层代码对数据分布的感知,使对数据的分区或者分片不会影相应用代码的编写。因为般来说数据层都是有状况的,所以用数据层解决分布式题目会更复杂、难度也更大。开源的DRDS等都是用于解决这类题目的。
 
(2)服务化和分布式化
 
我们在网站升级中一样平常会接触到两个概念:一是服务化改造;二是分布式化改造。那么它们是一回事吗?
 
服务化改造更多是从营业架构的角度出发,目的是将营业做更细粒度的功能拆分,使营业逻辑更加清晰、边界更加清楚且易于维护;服务化的另一个益处是收敛营业逻辑,通过接口标准化提供同一-的访问体例。 分布式化更多是从网站制作体系架构层面的角度出发,更多是看请求的访问路径,即一个请求必须先访问什么再访问什么、一次访问要经过哪些步骤才能最终有效果等...因此,这是两个不同层面的工作。