美文网首页
高性能服务系统的构建和实战书的学习笔记(1)综述

高性能服务系统的构建和实战书的学习笔记(1)综述

作者: c6963da9e3f8 | 来源:发表于2018-01-25 16:33 被阅读0次

    高性能系统面临的几个大的问题:

    一,高性能

            总结来说,该书将依据如下思路来讲解性能问题的优化方式:既然无法减轻整个系统的性能压力,就在系统内部分散压力并且缓存完成的任务。分散压力到多个服务节点,然后从系统原理的各个层面优化每个服务节点处理单个请求的性能,最终达到提升整个系统性能的目的,不能立即达到这个目的也没有关系,要保持节点的持续工作,按照自身资源的限制能力对任务进行异步处理。

    这就引申出了两个重要方面:1 负载均衡技术 2 消息队列技术

    二,高可用

            实现高可用有两种手段:一种是通过第三方组件保证系统的可用性,另一种是该软件本身就已经具备了高可用的技术实现。结合上面提到的,就是要实现负载均衡的高可用以及消息队列系统的高可用

    三,异常的处理

            这类异常处理问题主要是指同一顶层设计下,多个子系统间用来调用时发生的异常问题。解决的思路例如:1 使用消息队列的事物机制,重发机制或者私信机制 2 利用RPC实现的事物补偿机制 3 使用带有熔断机制的第三方组件  4 日志数据的排查

    四,系统间依赖问题

            系统间的循环依赖最可能是业务或技术人员无意造成的,但是当参与集成的业务系统数量超过可控制的阀值的时候,这个检查和纠正就不是人工可及的范围了

    五,系统雪崩的问题

            当系统出现性能问题,可用性问题,异常处理问题,系统间依赖问题时,技术人员旺旺不仅要担心本身带来的后果,更需要担心有次导致的系统雪崩效应。

    如下是web系统的分层架构以及实现的组件

    一,负载层的技术:

            不同的业务需求,使用的负载方案是不同的,例如 nginx只能处理TCP/IP协议之上的应用层HTTP协议,如果要处理TCP/IP协议,则要安装第三方TCP-Proxy-Module模块。更好的直接在TCP/IP层负载的方案,是使用HAProxy

    一下是一些常用的负载层方案以及这些方案的变形。

            1 独立的nigix负载或HAProxy方案

            2 LVS(DR) + Nginx 方案

            3 DNS轮询 + LVS +Nginx方案

            4 智能DNS(DNS路由) + LVS + nginx方案

    二,业务层技术

            该层是业务的核心处理层,在中大型业务系统中,这些业务不可能独立存在,一般都要涉及子系统间的脱耦。其后会以Thrift RPC技术,保证消息可达性的消息队列技术的原理和使用方式,讲业务通信层技术,以及介绍在业务层进行多个业务调用时的异常处理,包括事务补偿操作和错误熔断操作。

    三, 存储层技术

            要清楚的是操作系统下文件系统格式的选择 EXT3,EXT4,XFS

            清楚LinuxPageCache对文件读写的工作原理

    相关文章

      网友评论

          本文标题:高性能服务系统的构建和实战书的学习笔记(1)综述

          本文链接:https://www.haomeiwen.com/subject/ccguaxtx.html