分布式:服务分散部署在不同服务器组成一个整体应用,分散压力,解决高并发。
假设访问量特别大,就可以做成分布式,将一个大项目拆分出来单独运行。跟cdn一样的机制。
Redis分布式:将redis中的数据分布到不同的服务器上,每台服务器存储不同内容。Mysql集群是每台服务器都存放相同数据。分布式部署:系统应用部署在2台或以上服务器或虚拟机上,服务间通过RPC、WCF(包含WebService)等交互,即可称作分布式部署。微服务也算作分布式的一种,反之则不然。分布式优点:1、将模块拆分,使用接口通信,降低模块之间的耦合度。2、将项目拆分成若干个子项目,不同团队负责不同子项目。3、增加功能时只需再加一个子项目,调用其它系统接口即可。4、可灵活进行分布式部署。5、提高代码的复用性,比如service层,如果不采用分布式rest服务方式架构,在手机Wap商城、微信商城、PC、Android、ios每个端都要写一个service层逻辑,开发量大,难以维护和一起升级,此时可采用分布式rest服务方式共用一个service层。缺点:系统之间交互要使用远程通信,接口开发增大工作量,但利大于弊。微服务:可单独部署运行的微小服务,一个服务只完成单一功能分散能力,服务之间通过RPC等交互,至少有一个数据库。用户量过大高并发时,建议将应用拆解为多个子系统,各自隔离,独立负责功能。缺点:服务数量大,后期运维较难。分布式、微服务区别:分布式依赖整体组合,是系统的部署方式;微服务是架构设计方式,粒度更小,服务之间耦合度更低。独立小团队负责,敏捷性更高。集群:多台服务器复制部署相同应用,由负载均衡共同对外提供服务,逻辑功能仍是单体应用。项目如果跑在一台机器上,这台机器如果出现故障,或者用户请求量比较高一台机器支撑不住,网站可能就访问不了。那怎么解决呢?就需要使用多台机器,复制部署一样的程序,让几个机器同时运行网站。那怎么分发请求到所有机器上?所以负载均衡的概念就出现了。负载均衡:将请求分发以分摊服务器压力。基于反向代理能将所有的请求根据指定的策略算法,分发到不同的服务器上。实现负载均衡常用Nginx、LVS。负载均衡服务器出现问题了怎么办?所有冗余的概念就出现了。冗余:两台或多台服务器,一个主服务器,一个从服务器。假设一个主服务器的负载均衡服务器出现问题,从服务器能替代主服务器来继续负载均衡。实现的方式就是使用Keepalive来抢占虚拟主机。双机双工模式:目前Cluster(集群)的一种形式,两台服务器均为活动状态,同时运行相同的应用,保证整体的性能,也实现了负载均衡和互为备份。WEB服务器或FTP服务器等用此种方式比较多。实现多台服务器代码(文件)同步方案:1、负载均衡中实现代码同步rsync。2、rsync+inotify逐一文件监听并实时同步。3、实现redis共享session。internet采用了目前在分布式网络中最流行的客户机/服务器模式。凡是使用TCP/IP协议,并能与Internet的任意主机进行通信的计算机,无论是何种类型、采用何种 *** 作系统,均可看成是Internet的一部分。灵活多样的入网方式。这是由于TCP/IP成功的解决了不同的硬件平台、网络产品、 *** 作系统之间的兼容性问题。采用了分布网络中最为流行的客户机/服务器模式,xxx提高了网络信息服务的灵活性。将网络技术、多媒体技术融为一体,体现了现代多种信息技术互相融合的发展趋势。方便易行。任何地方仅需通过电话线、普通计算机即可接入Internet。向用户提供极其丰富的信息资源,包括大量免费使用的资源。具有完善的服务功能和友好的用户界面, *** 作简便,无须用户掌握更多的专业计算机知识。对于大型网站而言,随着流量的暴增,单一服务器是无法抗住高并发的,所以大型网站都是从最初的单一架构演变为集群分布式架构。淘宝网作为数一数二的电商平台,它开发了很多底层技术框架以适应日益发展的需要。
什么是分布式与负载均衡?
1、分布式
分布式是将一个完整业务拆分为多个子业务(或者本身就是不同的业务)部署在不同服务器之上,比如用户系统、订单系统、商城系统分布部署在不同服务器上。
还有一个概念容易和分布式混淆,那就是集群。集群强调的是同一个业务部署在多台服务器之上。
集群模式下,多个节点中的某个节点挂了是不会影响整体业务的;而分布式环境下若某个节点挂了则可能会影响某个业务(实际上不会,因为业务分布式部署后也会做集群)。
2、负载均衡
负载均衡充当的角色就是“裁判”,它将大量并发流量分摊至多台节点服务器(集群)上进行处理,这样减少了用户等待响应时间。
所以说负载均衡离不开服务集群。
淘宝如何是如何实现分布式、集群和负载均衡的?
1、动静分离
将动态请求与静态请求分别部署在不同服务器上,以便针对性进行优化。
2、分布式服务框架HSF
HSF是阿里的分布式服务框架,经过拆分,各系统间的耦合度大大降低了,更有利于分布式部署。
3、分布式NoSQL框架Tair
Tair是淘宝开源的分布式K/V数据库。
4、高性能Web服务器Tengine
Tengine是基于Nginx二次开发的,性能上比Nginx更好,而且支持更多特性,如:请求合并、限速模块、内置Lua等。可以借助它来做反向代理和负载均衡。
以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流~我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!1、分布式集群服务器方便我们的维护和开发,一方面可以解决和改善我们系统的并发问题,另一方面可以解决我们服务器如果出现一定数量的宕机后,系统仍然可以正常运转。2、独立的集成服务器当面对不断增加的性能需求,虚拟主机显得力不从心,在共享环境中,空间资源和带宽资源都是受到共享用户的使用量限制的。所以现代企业使用分布式集群服务器而不是独立的集成服务器。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)