聊聊分布式的可扩展性

article/2025/8/4 6:45:58
前言

    樱花灿烂的季节,满地的绿叶攀上指尖。


    春天,总是容易萌生懵懂的心理。。。这就是一堆人辞职的理由???


    团队,总会有人离开,总会有人加入。。。总会有一个leader,当服务器的数量增加的时候,业务增加的时候,总会进行相关的扩容或者缩容,那么这个团队的扩展性如何?


    增加了更多的事儿,leader是否能抗住?是否能分配所有的任务?是否能进行负载均衡?是否能对下属进行状态监控?在有人离职的时候,交接的任务是否很多?新来的人刚上线的时候,负载为0,大量的任务压来会不会直接把新人的IO耗尽。。。。


    这种团队的架构和分布式系统感觉。。。一样一样的。。。

分布式的扩展性

    分布式,是个系统都喜欢冠名为分布式系统,毕竟也是属于高大上的名词。。。


    说到分布式,凭什么你的扩展性就好?凭什么你就没有性能瓶颈?


    你是分布式,不同的节点分布在不同的host上就是分布式了?你是分布式就扩展性好了?未必吧。。。


    那么扩展性从哪几个方面来进行考虑呢?

    1、 控制节点不能成为瓶颈

    在一个团队增加更多的事件,更多的告警,更多的故障的时候,总有一个领导者来进行分配任务,那么这个领导者的时间就那么多,会不会成为瓶颈?话说,将熊熊一窝。。。


    在分布式系统中,一般都会带有元数据控制节点,例如etcd的存储,强一致性的master节点;k8s使用的就是etcd存储,强一致性的控制节点,例如日志来进行同步相关的元数据,从而保证数据的一致性。


    分布式文件系统中,内存中需要保存大量的元数据信息,例如目录结构,如果目录文件达到几万个,需要多少内存?那么内存是否就成了扩展性的瓶颈。。。


    在很多的设计中,可以将元数据进行分级存储,也就是弄一个二级索引,主控节点仅仅保存和二级索引之间的元数据,而二级索引用来保存部分的文件映射关系,从而可以解决控制节点成为瓶颈。


    其实这种设计,就是为什么团队大了,各种领导,各种小头目,各种组长全部冒出来了,因为一个master实在是扛不住那么多事儿,所以分配专职的人来进行管理,而master只要管理这些专职的人就行了。


    在减少master的压力上面,还可以使用权限下放的策略,例如在需要写入数据的时候,可以直接在客户端进行缓存元数据信息,然后直接写入到存储节点的服务器上,从而可以减少访问master的次数。


    其实作为一个master,职责多多,对外统一暴露的服务能力。。。那么你能管好一个团队?借鉴下分布式系统的master节点也不错,下发任务,调度执行,负载均衡,健康情况检查,元数据管理等等。。。


    2、 扩容的灵活性和灵活性

    在一个团队中,增加一个人,说容易也容易,在一个团队中,减少一个人,说简单也简单。。。


    在分布式系统中,主要是用来存储的,那么在进行扩容的时候,首先就要考虑到扩容的时候的数据迁移。。。数据量太大,怎么来迁移。。。迁移的时间是否允许,迁移个十年八载的,谁能受得了。。。


    在团队进行交接的时候,交接就那么一个月。。。交接个十年八载的。。。这不用辞职了。。。哈哈


    在扩容的时候,增加一个副本,可以大大的提高客户端读取的速度,但是如果增加一个副本就需要迁移几T的数据,如果这个几T的数据都是在一台机器上,那么得多久?网速20MB/s,那么就需要1T/20好久好久。。。


    在k8s中,以pod为单位进行扩容,但是,这个根本就不会有多少数据存在,只需要拉取镜像,然后创建容器,运行容器就好了,1分钟内就可以完成。。。这种扩容的灵活性和自动化程度还是很好的。。


    当扩容的时候,如果文件的数据都是分散在各个集群节点之上,那么扩容起来就比较灵活了,因为这样进行迁移数据的时候,用的整个集群的计算能力,存储能力和网络能力,而不是一台机器的计算存储网络资源。


    3、 扩容的自动化

    在一个团队中,如果整个组离职了。。。。增加一个组的难度有多难。。。各种技能的人进行搭配。。


    在数据库的存储中,一般都是使用主备的模式,增加备用节点可以大大的提高读的性能,但是在分布式数据库中,进行了垂直分割水平分割,也就是分库分表。。这种如果扩容起来是否麻烦?


    单个的主备,增加一个备用节点还是很简单的,只要进行日志同步就好了,而对于分布式数据库,根据业务进行切割表,得到各种子表,又根据hash算法进行切表,每个库里面存储一部分的数据。。。要扩容,那么就必须全部进行扩容,当有8个节点的时候,要想扩容,只有扩容8个节点,这样迁移的数据量不会很大,因为相当于每个分库进行扩容了,只要迁移分库的数据就好了。。


    如果业务继续增大,写性能跟不上了,那么怎么扩容?只有将业务进行重新分割,继续切分为数据库。。。这样就各种数据迁移的太多了,相当于所有的数据都要进行迁移。


    在k8s中,如果进行扩容,是以pod为单位,如果里面有三个容器,那么会直接增加一个pod,里面包含三个容器。。这种称之为同构架构。。。在分布式存储中,如果使用同构架构,那么增加一个副本,那么就会。。。拷贝大量的数据。。而且数据不是使用集群的整理资源。。。所以一般用异构架构,也就是数据进行切分,然后切分之后,副本分布在不同的交换机,不同的rack之上,从而在进行增加副本的,还是很容易的。

总结


    可扩展性。。。不是说说而已,不是分布在几台机器上就是可扩展了,增加一个节点,需要同步多少数据?一个节点永久性宕机,需要多少时间来进行故障恢复?故障恢复时间也是一个很好的度量范围。


    一个团队。。。人心分崩离析。。。毕竟到了春天。。。春心浪漫的季节。。。

    有人说,技术无用,不要谈情怀。。。还不如谈钱来的实际。。。。


    其实,不是在于没有人谈情怀,而是没有人能画饼。。。。


    不让我谈。。。我就谈!!!对牛弹琴。。。。我就不信,六指琴魔弹不死你。。。



    

    

    



    


http://chatgpt.dhexx.cn/article/rrMPvdyw.shtml

相关文章

可维护性、可复用性和可扩展性的区别

三者是不同的软件质量属性。 可维护性、可复用性又被认为是两个最重要的用于衡量软件质量的属性。 在《Java设计模式》一书中对可维护性的定义为:指软件能够被理解、改正、适应及扩展的难易程度。 对可复用性的定义为:指软件能够被重复使用的难易程度。 …

八、系统架构 - 可扩展性架构设计

目录 可扩展性 可扩展性的定义 可扩展架构的核心思想 可扩展性架构的主要手段 利用分布式消息队列降低系统耦合性 事件驱动架构(Event Driven Architecture) 消息队列的优势 分布式消息队列 利用分布式服务打造可复用的业务平台 巨无霸系统及其…

后台系统可扩展性学习笔记(一)概要

文章目录 系统大致架构可扩展性负载均衡器与会话保持引入冗余增强系统可用性缓存减轻数据库压力异步处理参考 系统大致架构 当一个用户请求从客户端出发,经过网络传输,达到 Web 服务层,接着进入应用层,最后抵达数据层&#xff0c…

1.3 可扩展性

即使一个系统现在可以可靠地工作,但并不意味着未来它也一定会可靠地工作。造成退化的一个常见的原因就是日益增加的负载:系统的并发用户可能从10000增加到了100000,或者从1000000增加到10000000。可能它处理的数据量比之前大得多。可扩展性是…

七种方法增强代码可扩展性(多图详解)

1 六大原则 在设计模式中有六大设计原则: 单一职责原则:一个类只做一件事 里式替换原则:子类可以扩展父类 依赖倒置原则:面向接口编程 接口隔离原则:高内聚低耦合 迪米特法则:最少知道原则 开闭原则&#…

系统复杂度之【可扩展性】

紧接着我们来聊聊可扩展性。 可扩展性是指,软件系统具备面对未来需求变化而进行扩展的能力。系统可根据新的需求做出少量或者不需要修改,无需对整个系统进行重构或重建。 由于软件系统变化多端,新的需求不断提出,因此可扩展性非常…

php文字链接下划线怎么取消,html超链接怎么去掉下划线

html超链接怎么去掉下划线? 可以用css的text-decoration:none来取消连接的下划线 这是一个链接 扩展资料: 超级文本标记语言是标准通用标记语言下的一个应用,也是一种规范,一种标准,它通过标记符号来标记要显示的网页中…

html去除超链接标记,html超链接去掉下划线的方法

html超链接去掉下划线的方法 发布时间:2020-04-03 15:16:00 来源:亿速云 阅读:59 作者:小新 今天小编给大家分享的是html超链接去掉下划线的方法,很多人都不太了解,今天小编为了让大家更加了解html超链接去…

<el-tabs>改变样式(去掉下划线及其他样式)

elemen-ui官方文档中给的标签页是蓝色的&#xff0c;长这样 我想要的样子&#xff1a; 这里重点是去掉原来的下划线以及鼠标悬停时的背景颜色&#xff0c;话不多说直接上代码&#xff1a; <div class"leftTabs"><el-tabs v-model"activeName" c…

html怎么消除链接字体,CSS去掉超链接下划线

div css之去掉A超链接下划线样式 一、去掉字体下划线装饰CSS属性样式代码 text-decoration:none 解释&#xff1a; CSS下划线样式单词&#xff1a;text-decoration 不显示下划线(去掉字体下划线样式)&#xff1a;none 二、div css网页重构前初始化去掉超链接下划线 由于有的浏览…

html更改超链接下划线颜色,超链接去掉下划线_WORD中不取消超链接,只改超链接的颜色和去掉下划线...

ppt超链接去掉下划线 1、首先打开PPT。2、“插入”“文本框”“横排文本框”,在空白处写字,调整字的大小等。3、插入”“超链接”,会出现“插入超链接”对话框,在这里选择需要链接到的位置,点击确定。4、这时出现的超链接字体就会有下划线。 5、我们在这里选中超链接字体右…

html超链接下划线改虚线_html超链接去掉下划线 html去除取消超链接下划线

大多时候我们知道&#xff1a;text-decoration:underline &#xfffd;?strong>显示下划&#xfffd;?/strong>&#xfffd;?/p> html中去除去&#xfffd;?a href"//www.css5.com.cn/html/989.shtml">A标签超链接下划线代码&#xfffd;?br /> …

php中超链接怎么去下划线的,html如何去掉超链接下划线?html超链接去掉下划线的方法介绍...

前端网页的开发中总是不可避免会使用到超链接&#xff0c;但是使用超链接时下面都会有一条下划线&#xff0c;这在网页中有时会显得很突兀&#xff0c;不合适也不美观&#xff0c;所以我们就需要将超链接下的这条下划线给去掉&#xff0c;接下来的这篇文章就来给大家介绍html下…

html5中链接去除下划线,html超链接去掉下划线 html去除取消超链接下划线

html a超链接标签&#xff0c;默认有的涉猎器表现有下划线&#xff0c;有的不有下划线&#xff0c;大多锚文本超链接A标签内字体是有下划线的&#xff0c;怎么去除超链接下划线&#xff1f;html 超链接去除下划线怎么样做&#xff1f; 去掉去除超链接锚文本的下划线需要CSS花样…

html如何取消表格的横线,怎么去掉下划线样式?

怎么去掉超链接下划线?下面本篇文章给大家介绍一下在html网页和word文档中去掉下划线样式的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 html代码中去掉超链接的下划线 前端网页的开发中总是不可避免会使用到超链接,但是使用超链接时下面都会有…

word里边页眉下面的下划线怎么去掉

原创作品&#xff0c;出自 “深蓝的blog” 博客&#xff0c;欢迎转载&#xff0c;转载时请务必注明以下出处&#xff0c;否则追究版权法律责任。 深蓝的blog&#xff1a;http://blog.csdn.net/huangyanlong/article/details/43762599 今日在使用word编辑统计表时&#xff0c;添…

为什么电流镜的复制电路是二极管结构?

左图是电流镜的概念图&#xff0c;复制电路偏置在IREF&#xff0c;为右边的管子提供一个偏压VGS。右图是最典型的电流镜结构&#xff0c;今天的问题是为什么复制电路结构用二极管连接结构&#xff0c;不用CS&#xff0c;CD或者CG中的一种呢&#xff1f; 首先我们得明确复制电路…

电流镜电路公式推导

最近复习了硬件笔试题。碰到了这个题&#xff0c;遂写一下自己的推导过程。 电流镜原理图&#xff08;假设三个管子的是参数理想一致的情况&#xff09; 基于 KCL 公式 -->>> Ie1 Ib2 Ib3 基于 BJT放大关系 -->>> Ie1 Ib1 *(1β)基于 KCL 公式 -->…

有源电流镜-下-第十学时

第10学时&#xff0c;电流镜电路&#xff0c;已发布&#xff0c;详见网易云课堂系列精品课程&#xff1a;《CMOS模拟集成电路设计》&#xff0c;由陈博士主讲&#xff0c;链接地址&#xff1a; https://study.163.com/course/introduction.htm?share2&shareId40000000067…