美文网首页
大规模分布式系统设计概要--基于微服务

大规模分布式系统设计概要--基于微服务

作者: TechLogs | 来源:发表于2020-05-20 23:47 被阅读0次

设计及实施过程中面临问题(点滴开始,并非一蹴而就)

  1. 起点:由于规模庞大,系统面临高并发、海量数据存储需求,将导致单体设计无法满足需求,支持水平硬件扩展的分布式架构应运而生。
  2. 调整:基于第一个问题,我们按功能进行服务的拆分,每个功能点都拆分成一个单体的服务(麻雀虽小,五脏俱全:从接口的对外发布功能到底层的数据存储,均在这个体系内),服务间调用使用RPC方式,并加入分布式事务功能,保证数据的一致性。
  3. 新问题:经过『调整』后的构架,在一定程度上提高了系统的吞吐量,但还远远达不到高并发,海量数据的需求,因为有些功能点的访问量还是会超出单体的处理能力,这就要求单个功能点也能支持硬件的水平扩展。
  4. 再调整:为了能支持更高的并发和海量的数据存储,这里先引出一个概念AKF(可以参考这篇https://www.cnblogs.com/guanghe/p/10978349.html)。基于AKF原理,这里主要讨论X和Y轴两个维度:

Z轴(数据分区)关注服务与数据的优先级划分,如按地域划分
Y轴(功能)关注应用中功能划分,基于不同的业务拆分
X轴(水平扩展)关注水平扩展,也就是“加速器解决问题”

对于Y轴,前面第2点其实已经实现,但是还不够细,也就是说如果基于功能拆分的服务是有状态的,那么它的水平扩展将会出大问题。所以接下来就要将按功能拆分的单体微服务转换成一个无状态的微服务,再去做水平扩展即可满足基本需求。

  1. 这里提一下Z轴主要解决的问题:比如我们的打车服务接口,一开始全部部署在华南的机房,深圳这边的用户用着是很爽,网速杠杠的,但是,北京的用户就是一直抱怨系统响应慢,明明服务器负载也是正常的呀。究其原因是网络链路问题,这个可以通过CDN来解决。基本思路就是根据区域用户数,在华南和华北部署一定比例的服务,再通过CDN加速(就近原则:通过对请求来源进行解析,将请求分发到最近的服务器上)即可。

相关文章

  • 大规模分布式系统设计概要--基于微服务

    设计及实施过程中面临问题(点滴开始,并非一蹴而就) 起点:由于规模庞大,系统面临高并发、海量数据存储需求,将导致单...

  • Talk - Scaling Distributed Machi

    来源于李沐大神的talk:基于系统和算法的协同设计的大规模分布式机器学习(Scaling Distributed ...

  • Dapper,大规模分布式系统的跟踪系统

    转载:Dapper,大规模分布式系统的跟踪系统 当代的互联网的服务,通常都是用复杂的、大规模分布式集群来实现的。互...

  • 分布式系统技术概要

    分布式系统技术概要 现在互联网应用,尤其是大型互联网公司的应用已经发展为大规模或超大规模的分布式的,集群化的应用。...

  • nsq笔记[一]:设计架构

    NSQ是基于Go语言的实时分布式消息平台,设计用以完成日均亿级的大规模消息服务,可以用于基于最终一致性的消息队列。...

  • GeekBand 系统设计与实践 Thrid Week

    GeekBand 系统设计与实践 Thrid Week 搭建大规模可扩展的系统 分布式系统 数据库系统 经典结构 ...

  • 什么是幂等?分布式锁如何实现业务幂等?

    1|0前言 现如今很多系统都会基于分布式或微服务思想完成对系统的架构设计。那么在这一个系统中,就会存在若干个微服务...

  • 什么是幂等?分布式锁如何实现业务幂等?

    1|0前言 现如今很多系统都会基于分布式或微服务思想完成对系统的架构设计。那么在这一个系统中,就会存在若干个微服务...

  • 5分钟搞懂分布式可观测性

    可观测性是大规模分布式(微服务)系统的必要组件,没有可观测系统的支持,监控和调试分布式系统将是一场灾难。本文讨论了...

  • 测试总结模板

    一、需求概要设计(本次需求点概要描述) 二、系统框架介绍(系统架构图、底层原理介绍,一般基于开发架构图给出) 三、...

网友评论

      本文标题:大规模分布式系统设计概要--基于微服务

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