您当前的位置:首页 > 电脑百科 > 程序开发 > 架构

分布式系统架构落地与瓶颈突破,你值得拥有

时间:2019-11-15 10:42:32  来源:  作者:

一个优秀的架构师,抽象思维能力是必不可少的,架构师要善于“店丁解牛”,将实物概念化并归类,比如一个大型网站,你能够迅速根据业务功能的不同,将业务垂直化;

而扎实的技术功底又是架构师能力版图中所占比例最大的一块,因为抽象思维能力是虚的,技术能力是实的,只有做到虚实结合 ,才能够达到“手中无剑,心中有剑”的境界:技术前瞻性是需要架构师凭借自身经验和觉预估当前架构的缺陷会为将来埋下哪些隐患、哪些技术问题是需要在网站发展到一定阶段就必须重构的、哪些技术在未来是趋势,需要提前进行了解和学习的领域知识既要求了架构师的知识广度,又要求了架构师的知识深度,因为架构师的技术能力不能够仅局限在自己所擅长的那一亩三分地;

沟通交流能力其实非常重要,因为大多数情况下,我们都是在与人而非计算机打交道,比如,我们构建的系统先是给人使用的,其次才是让计算机理解。

除此之外,业务的沟通探讨、技术方案的探讨等诸多事项都是人与人面对面的直接沟通交流,如果你不善于沟通,那么如何能够让别人明确你的用意 又如何顺利开展工作呢?

人人都是架构师+分布式系统架构落地与瓶颈突破,你值得拥有

架构师的能力版图

本书主要有五部分组成:

人人都是架构师+分布式系统架构落地与瓶颈突破,你值得拥有

只需要转发关注小编,私信小编“学习”就可以获得!

分布式系统的架构演变过程

在移动互联网的浪潮中,你我正生逢其时地 受着当下,如果你愿意做 只站在风口上 待起飞的猪,那么请认真地问问自己,是否已经准备好了?互联网究是什么?简而言之,互联网诠释的是 种精神,融入了高度开放、分 ,以及自由的精神。如果你想融入这个圈子,那么请务必先舍弃掉与互联网精神背道而驰的陈旧观念和思维,否则你自始至终都只会被孤立在局外。

互联网悄然改变了世界,改变了人们对事务的认知,缩短了人与人之间的距离无论你是否愿意承认,互联网已经完全影响并融入我们的生活中。我们的长辈们,也从早期对新鲜事物的排斥,变成现在的欣然接受,这就是互联网与生俱来的魅力和魔力。

笔者的母亲从来就不是 个喜欢追赶潮流的人,但是她早已智能设备从不离身,每天早上起床的第一 件事情就是拿起智能手机,刷刷朋友圈、 看看时事政治、做回“吃瓜群众”,八卦下娱乐新闻,甚至衣食住行也几乎是通过互联网这个载体键搞定的,如图所示。既然互联网能使我们的生活质量更好,那就请张开双臂紧紧拥抱它。

人人都是架构师+分布式系统架构落地与瓶颈突破,你值得拥有

拥有互联网的生活

大流量限流/消峰案例

天猫、淘宝这种级别的大型互联网电商网站,主要的技术挑战来自于庞大的用户规模所带来的大流量和高并发,在“双 11 ”、“双 12 ”等大促场景下尤为明显。

如果不对流量进行合理管制,肆意放任大流量冲击系统,那么将导致 系列的问题出现,比如一些可用的连接资源被耗尽、分布式缓存的容量被撑爆、数据库吞吐量降低,最终必然会导致系统产生雪崩效应。当然,应对大流量和高并发也没有大家想象得那么复杂和神秘。

一般来说,大型互联网站通常采用的做法是通过扩容、动静分离、缓存、服务降级及限流五种常规手段来保护系统的稳定运行。

不同的企业可能会采用不同的解决方案来应对大流量和高并发,因为不同业务之间存在的差异性决定了不会诞生通用的解决方案,所谓条条大路通罗马,只要能够换取同质性的结果,过程如何就显得不是特别重要,这就好比如果能够提前知道罗马的具体位置,那么处处都是路,怎么走都行。

本章的重点是流量管制,只要我们能够采用合理且有效的方式管制住用户流量 让其有秩序地对系统进行访问,那么无论是在平时还是在大促的时候,系统都能够稳定运行。需要明确的是,流量管制的目的是保护系统,让系统的负载处于 个比较均衡的水位,而不是刻意为了限流而限流,否则将会严重影响用户体验,得不偿失。

分布式配置管理服务案例

相信大家对配置信息都不会感到陌生,在实际的开发过程中,无论是访问数据库、分布式缓存系统、消息队列,还是通过 Dubbo 框架实现 RPC 调用,都需要提前配置好目标 URL 、账号/密码等信息,因此这类信息也被称为配置信息。在大部分情况下,我们都会选择将相关配置信息配置在配置文件中,当系统启动时,会从指定的目录下进行加载,通过获取配置文件中的配置信息项来完成环境的初始化工作。

除此之外,我们在使用电脑进行办公、娱乐时,也会高频率地与配置信息打交道,比如,通过操作系统的控制面板来设置显示器的分辨率、鼠标的双击速度 ,以及区域和语言设置等,这些都属于配置信息,所以如果你告诉我你从未接触过配置信息,那么我一定会摇摇头对你说这不可能。

大促场景下热点数据的读/写优化案例

在秒杀、限时抢购这种大促场景下,由于峰值流量较大,大量的并发读/写操作一定会导致后端的存储系统产生性能瓶颈。

前面已经讲解过,提升单机处理能力最有效的办法就是采用集群技术对服务器进行扩容,只要系统能够具备良好的伸缩性,那么从理论上来说,其容量便可以是无限的。

在此需要注意 ,大促场景下因热点数据导致的单点瓶颈已经不再是简单地通过横向扩容就能够顺利解决的,尽管对于读操作我们可以将热点数据缓存在分布式缓存中以达到提升系统 QPS 的目的,但是缓存系统的单点容量还是存在上限的 ,因此应对大促场景下的峰值流量仍显得杯水车薪。

除此之外,由于热点数据的写操作无法直接在缓存中完成,那么这必然会引起大量的线程相互竞争 nnoDB 的行锁。并发越大时,等待的线程就越多,这会严重影响数据库的 TPS ,导致 RT 线性上升,最终可能引发系统出现雪崩。

数据库分库分表案例

大型网站几乎时时刻刻都在接受着高并发和海量数据的洗礼,随着用户规模的线性上升,单库的性能瓶颈会逐渐暴露出来,由于数据库的检索效率越来越慢,导致生产环境中产生较多的慢速 SQL。

对于非结构化的数据,可以将其存储在 NoSQL数据库中来提升性能,但是重要的业务数据,仍然要落盘在关系型数据库(如 MySQL数据库)中。

那么如何提升关系型数据库的并行处理能力和检索效率就成为了架构师需要思考和解决的棘手问题,并且单库如果岩机,业务系统也就随之瘫痪了。

因此,在互联网场景下,架构师务必要确保后端存储系统具备高可用性和高性能,为了解决这些问题,目前互联网场景下常见的做法便是对数据库实施分库分表,即Sharding 改造。



Tags:分布式系统   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
随着移动互联网技术的快速发展,在新业务、新领域、新场景的驱动下,基于传统大型机的服务部署方式,不仅难以适应快速增长的业务需求,而且持续耗费高昂的成本,从而使得各大生产厂商...【详细内容】
2021-12-08  Tags: 分布式系统  点击:(23)  评论:(0)  加入收藏
分布式一致性算法概要随着各种高并发访问、海量数据处理等应用场景越来越多,为了应对这些使用场景,分布式系统应运而生。分布式系统得以发展,得益于诸多优点,比如:可以避免 单点...【详细内容】
2021-04-13  Tags: 分布式系统  点击:(238)  评论:(0)  加入收藏
分布式系统的经典理论分布式系统从诞生到现在已经有几十个年头了,其中伴随着一些很重要的基础理论,正是这些影响深远的基础理论,奠定了分布式系统的坚实基础,造就了分布式领域的...【详细内容】
2021-04-13  Tags: 分布式系统  点击:(263)  评论:(0)  加入收藏
分布式理论知识1、分布式系统架构1.1基础概念分布式 : 将一个单体项目分成很多个模块,各个模块协同工作,各个模块构成了分布式系统集群:针对单个模块或者单个系统在多台服务器上...【详细内容】
2021-01-28  Tags: 分布式系统  点击:(111)  评论:(0)  加入收藏
一致性问题一致性问题是分布式领域最重要、最基础的问题。一致性/Consistency,是说在有多个服务节点的情况下,执行一些列操作,在约定协议的保障下,使得他们对外的处理结果,能达...【详细内容】
2020-12-15  Tags: 分布式系统  点击:(149)  评论:(0)  加入收藏
在分布式系统,尤其是微服务系统中,一次外部请求往往需要内部多个模块,多个中间件,多台机器的相互调用才能完成。在这一系列的调用中,可能有些是串行的,而有些是并行的。在这种情况...【详细内容】
2020-12-11  Tags: 分布式系统  点击:(158)  评论:(0)  加入收藏
现如今可谓是微服务、分布式、IoT(物联网)横行的时代,作为一名开发者始终还是要保持一定的危机意识,特别是在日常的项目开发中,若是有机会接触到一些关于微服务、分布式下的应用...【详细内容】
2020-12-01  Tags: 分布式系统  点击:(114)  评论:(0)  加入收藏
分布式系统如何寻址?通过 RPC 框架,能够解决服务之间的跨网络通信问题,是微服务改造的基础。服务拆分之后,需要维护更多细粒度的服务,这样就涉及到 RPC 客户端服到服务端的 部署...【详细内容】
2020-11-04  Tags: 分布式系统  点击:(103)  评论:(0)  加入收藏
上一篇《CAP》写完之后,我又反复回看了多次,发现最后的一部分表达CAP、ACID、BASE、“BACP(自造)”关系时有一些问题,并且不是很严谨,但是无奈已经发送过的内容,无法支持修改,并且有挺多小伙伴都在私聊我确认细节,这里我来重...【详细内容】
2020-09-16  Tags: 分布式系统  点击:(46)  评论:(0)  加入收藏
介绍OAuth(开放授权)是一个开放标准,允许用户授权第三方应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方应用或分享他们数据的所有内容。OAuth...【详细内容】
2020-08-18  Tags: 分布式系统  点击:(65)  评论:(0)  加入收藏
▌简易百科推荐
为了构建高并发、高可用的系统架构,压测、容量预估必不可少,在发现系统瓶颈后,需要有针对性地扩容、优化。结合楼主的经验和知识,本文做一个简单的总结,欢迎探讨。1、QPS保障目标...【详细内容】
2021-12-27  大数据架构师    Tags:架构   点击:(5)  评论:(0)  加入收藏
前言 单片机开发中,我们往往首先接触裸机系统,然后到RTOS,那么它们的软件架构是什么?这是我们开发人员必须认真考虑的问题。在实际项目中,首先选择软件架构是非常重要的,接下来我...【详细内容】
2021-12-23  正点原子原子哥    Tags:架构   点击:(7)  评论:(0)  加入收藏
现有数据架构难以支撑现代化应用的实现。 随着云计算产业的快速崛起,带动着各行各业开始自己的基于云的业务创新和信息架构现代化,云计算的可靠性、灵活性、按需计费的高性价...【详细内容】
2021-12-22    CSDN  Tags:数据架构   点击:(10)  评论:(0)  加入收藏
▶ 企业级项目结构封装释义 如果你刚毕业,作为Java新手程序员进入一家企业,拿到代码之后,你有什么感觉呢?如果你没有听过多模块、分布式这类的概念,那么多半会傻眼。为什么一个项...【详细内容】
2021-12-20  蜗牛学苑    Tags:微服务   点击:(9)  评论:(0)  加入收藏
我是一名程序员关注我们吧,我们会多多分享技术和资源。进来的朋友,可以多了解下青锋的产品,已开源多个产品的架构版本。Thymeleaf版(开源)1、采用技术: springboot、layui、Thymel...【详细内容】
2021-12-14  青锋爱编程    Tags:后台架构   点击:(21)  评论:(0)  加入收藏
在了解连接池之前,我们需要对长、短链接建立初步认识。我们都知道,网络通信大部分都是基于TCP/IP协议,数据传输之前,双方通过“三次握手”建立连接,当数据传输完成之后,又通过“四次挥手”释放连接,以下是“三次握手”与“四...【详细内容】
2021-12-14  架构即人生    Tags:连接池   点击:(17)  评论:(0)  加入收藏
随着移动互联网技术的快速发展,在新业务、新领域、新场景的驱动下,基于传统大型机的服务部署方式,不仅难以适应快速增长的业务需求,而且持续耗费高昂的成本,从而使得各大生产厂商...【详细内容】
2021-12-08  架构驿站    Tags:分布式系统   点击:(23)  评论:(0)  加入收藏
本系列为 Netty 学习笔记,本篇介绍总结Java NIO 网络编程。Netty 作为一个异步的、事件驱动的网络应用程序框架,也是基于NIO的客户、服务器端的编程框架。其对 Java NIO 底层...【详细内容】
2021-12-07  大数据架构师    Tags:Netty   点击:(17)  评论:(0)  加入收藏
前面谈过很多关于数字化转型,云原生,微服务方面的文章。虽然自己一直做大集团的SOA集成平台咨询规划和建设项目,但是当前传统企业数字化转型,国产化和自主可控,云原生,微服务是不...【详细内容】
2021-12-06  人月聊IT    Tags:架构   点击:(23)  评论:(0)  加入收藏
微服务看似是完美的解决方案。从理论上来说,微服务提高了开发速度,而且还可以单独扩展应用的某个部分。但实际上,微服务带有一定的隐形成本。我认为,没有亲自动手构建微服务的经历,就无法真正了解其复杂性。...【详细内容】
2021-11-26  GreekDataGuy  CSDN  Tags:单体应用   点击:(35)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条