
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
分布式架构开发是目前大多数软件编程开发程序员在开发应用软件的时候都会经常用到的一种架构方式,下面我们就通过案例分析来简单了解一下,零基础学习分布式架构开发需要掌握哪些知识点。
一、算法逻辑层
算法逻辑层优化主要关注算法选择是否高效、算法逻辑优化、空间时间优化任务并行处理、是否使用无锁数据结构等,具体分析如下。
用更高效的算法替换现有算法,而不改变其接口。增量式算法,复用之前的计算结果,比如一个报表服务,要从全量数据中生成。报表数据量很大,但每次的增量数据较少,则可以考虑只计算增量数据并将其与之前的计算结果合并。
并发和锁的优化:读多写少,乐观锁;读少写多,互斥锁。
系统时间是瓶颈:如缓存复用计算结果,降低时间开销,因为CPU时间比内存容量更重要。
数据大小是瓶颈:网络传输是瓶颈,使用系统时间换取空间,使用HTTP的Gzip压缩算法。
并行执行:如果只是逻辑调用多个RPC接口,而这些接口之间并没有数据依赖,则可以考虑并行调用,减少响应时间。
异步执行:分析业务中的主次流程,把次要流程拆出来异步执行或将次要流程进一步拆分成单独的模块去执行,比如消息队列,让其彻底和核心流程解耦,提高核心流程的稳定性,减少响应时间。
二、架构设计层
架构设计层的优化包括如何拆分系统,如何使各个部分系统负载更加均衡,充分发挥硬件设施的性能优势,减少系统内部开销等,具体分析如下。
系统微服务。
无状态化设计,动态水平弹性扩展。
调用链路梳理,热点数据尽量靠近用户。
分布式缓存,多级多类型缓存。
提前拒绝,保证柔性可用。
容量规划。
分布分表,读写分离,数据分片。
在基于容器云的分布式架构中,当客户端发起大流量请求时,网关、应用架构层、数据访问层可以横向扩展,但终数据还是会落盘。因此有大流量请求时,分布式架构终的性能瓶颈在于数据库上的热点数据。
针对数据库的热点数据,我们可以采用对数据库做分表的方法,但如果热点消息是一个数据库中的一行数据,通过数据库和缓存的分表也无法完全消除热点。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。