开篇介绍在移动互联网、互联网+、大数据时代,各种互联网网站和平台如雨后春笋般拔地而起雨。,千树万树梨花”的感觉。对于移动互联网时代的平台来说,用户体验好不好?平台的稳定性好不好?这大概是所有互联网平台最重要的两个因素。的确,在移动互联网时代,流量就是市场价值,说白了就是收入,也就是人民币。如果你失去了流量,那么你就失去了赚取收入的机会和机会。。所以,对于互联网平台或者网站来说,网站的高可用性和不间断服务也是平台运行过程中的一大决定因素,如果出现错误、访问超时等情况,用户流失的概率也会相应增加。那么今天我们就来说说各种高可用架构的演进过程,农民工用了三个小时写完这篇文章,希望对大家有所帮助,欢迎大家评论、留言、点赞、转发、分享支持。什么是高可用性?“高可用性”(HighAvailability)通常描述的是经过专门设计以减少停机时间同时保持其服务的高可用性的系统。简而言之,就是不间断地对外提供服务。架构开头的架构图架构简述这类架构比较适合初创公司或者流量不大的平台。这种架构一般在平台运营初期使用。日均PV并不大,简单的架构足以应付用户的流量请求。比如前端网站可以使用Apache/nginx,APP服务器直接使用JAVA环境如tomcat应用,互联网平台的数据库大多使用Mysql,备份服务器一般会备份一些常用的配置、代码、数据库数据的备份文件等。因此,农民工称之为结构体的开头。在架构中期,随着用户量和访问量的增加,随之而来的问题是单个服务器已经无法承担用户的流量。因此,前期的基础设施需要进行一定程度的调整。下面的架构图经过粗略的调整,简要说明了这类架构,引入了负载均衡的概念。关于应用负载均衡,前面有相关文章介绍过。具体文章链接如下配置负载均衡到proxy和负载均衡的开源软件很多。通常,硬件负载有两种方式——F5七层或四层网络代理软件负载——nginx、haproxy开源负载均衡软件。负载均衡的算法通常有:轮询法、随机法、源地址哈希法、加权轮询法、加权随机法、最小连接数法,采用哪种方法,全看企业实际需要,比例inputtooutput(成本考虑),但是这种架构也有一定的缺点,暂时不考虑前端负载设备的高可用,比如用户上传和查看文件的问题(通过A服务访问上传,然后加载查看是通过B服务器,会造成用户无法查看的问题),APP服务器同理;数据库服务器存在主从数据库单点问题。一旦失败,可以手动切换,但可能会造成数据丢失或不一致,一定程度上会给用户带来不好的体验;所以它还需要进化。架构图ArchitectureBrief本架构是在上述架构的基础上,针对各种问题进行修改,增加了一个数据存储服务器(NFS共享存储Linux系统NFS网络文件系统),对于存储架构和源码部分,其实有相当多具体有以下几种开源软件服务1.NFS网络共享存储文件系统2.FastDFS轻量级网络文件系统(参考文章:分布式文件系统FastDFS详解)3.分布式文件系统MooseFS4、GlusterFS文件系统和配置负载均衡,也解决了单点故障的问题。数据库服务器做了一些结构调整,为双主多从架构。对于数据库的各种高可用架构,之前也有文章分析过。具体比如:浅谈MySQL集群高可用架构之MHAMySQL集群高可用架构。大读取量的性能问题,保证一定访问量下的平台性能和高可用架构。最终架构图。该体系结构已经发展到一定程度。仅通过并行扩展或增加服务器数量未必??能够解决相关问题。性能问题,所以第一,在用户接入初期会采用CDN加速技术,提升用户接入体验;第二,根据业务拆分成不同的服务,通过拆分服务部署同一个服务的多个实例架构,可以达到扩展的目的,提高一定的性能,保证平台的高可用;服务拆分后,一定程度上也可以解决发布问题,因为服务之间是相互独立的,服务之间的耦合度不强,日常维护也比较方便;第三,针对用户和数据库之间的瓶颈问题,考虑加入缓存技术,提高一定的访问性能和高可用性,让用户的访问流量在到达数据库之前直接进行过滤。甚至超过一半,从而减轻数据库访问的压力。在查询多写少的场景下,非常适合使用缓存来提高查询服务的性能,减轻数据库的压力。通常使用redis作为缓存服务器。redis的一些集群机制可以很大程度上保证缓存服务的高可用(redis集群生产环境高可用解决方案实战过程),当缓存服务失效时,也可以从数据库中获取信息。然后对备份服务器进行简单的调整,保证数据的完整性。一方面也可以及时保证应用的高可用;事实上,一些大型分布式系统在缓存方面更倾向于memcached服务(Linux系统Memcached服务介绍),比如一些用户登录信息同步到其他系统的场景,一般部署在前台应用之间层和数据存储层来处理来自前端应用的大量请求和快速响应,从而减轻数据库访问压力,提高用户性能。访问体验。还有一部分平台架构采用了分层的方式。前端应用层:为用户提供页面展示、搜索、搜索界面及相关的最终结果展示页面。后端服务层:一般包括常用的后台服务,用户管理,接口管理,支付管理等,都是为前端应用提供服务的数据存储层:这个很容易理解,比如数据库,文件系统、缓存等,提供数据访问和存储,因此也有以下几种架构。总结一下,高可用和高性能只能说是一个阶段,一个时期,没有完美的架构,只有不断演进和完善的架构。所以,今天说的高性能高可用架构可能并不完美,但归根结底可以用一句话来概括:“让用户的访问流量尽可能高,过滤用户流量这一步循序渐进,快速响应用户的请求,从而达到更好的用户体验。”
