阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录

第一章 概述

第二章 弹性伸缩简介

1、弹性伸缩

2、垂直伸缩

3、优势

4、应用场景

① 无规律的业务量波动

② 有规律的业务量波动

③ 无明显业务量波动

④ 混合型业务

⑤ 消息通知

⑥ 生命周期挂钩

⑦ 自定义方式

⑧ 滚的升级

5、使用限制

第三章 主要定义

1、工作原理

2、基础概念

① 伸缩组

② 弹性容器实例ECI

③ 稳定实例

④ SLB负载均衡实例

⑤ 伸缩模式

⑥ 实例配置信息来源

⑦ 伸缩配置

⑧ 伸缩规则

⑨ 自动触发任务

3、常见活动

① 伸缩活动

② 期望实例数

③ 并行伸缩活动

④ 非并行伸缩任务

4、伸缩组流程

① 伸缩组流程

② 组内实例生命周期

③ 生命周期挂钩

④ 冷却时间

第四章 使用流程

1、创建伸缩组

2、创建伸缩配置

3、启用伸缩组

4、创建伸缩规则

5、创建自动伸缩任务

① 定时任务

② 报警任务

第五章 伸缩组详解

1、创建伸缩组

2、伸缩组状态

3、创建伸缩组限制

4、创建步骤

5、删除伸缩组

① 删除保护

② 删除结果

③ 强制删除

④ 非强制删除

6、伸缩组内实例状态

7、自动创建ECS实例

8、手动创建ECS实例

9、查看伸缩组实例列表

10、移除或释放实例

11、转为备用状态

12、转出备用状态

13、转为保护状态

14、转为停用状态

15、手动移出或删除实例

16、自动移除策略

① 筛选最早伸缩配置对应的实例

② 筛选最早创建的实例

③ 筛选最新创建的实例

④ 无策略

第五章 伸缩配置详解

1、创建前提

2、创建步骤

3、伸缩配置状态

第六章 伸缩规则详解

1、规则类型

① 普通规则

② 步进规则

③ 预测规则

④ 目标追踪规则

第七章 伸缩模式详解

1、模式类型

① 固定数量模式

② 健康模式

③ 定时模式

④ 动态模式

⑤ 自定义模式

⑥ 多模式并行

2、健康模式说明

3、定时模式说明

4、动态模式说明

① 系统监控报警任务

② 自定义监控报警任务

③ 报警任务支持监控项

第八章 伸缩活动

1、弹性扩容

2、弹性缩容

3、伸缩活动特点

4、伸缩活动自动创建ECS实例

5、伸缩活动自动移出实例

6、手动添加实例到伸缩组

7、手动移出伸缩组实例

8、并行/非并行伸缩活动

① 并行伸缩活动

② 非并行伸缩活动

9、冷却时间

第九章 自动化运维


第一章 概述

第二章 弹性伸缩简介

1、弹性伸缩

        根据业务实际需求和策略,自动调整计算能力(即实例数量),自动适配当前业务实际的需求,优化成本,也优化系统的稳定性。

2、垂直伸缩

        不调整实例数量,而是调整实例的规格(vCPU和内存),系统自动完成停止实例,调整实例规格,启动实例。

3、优势

4、应用场景

① 无规律的业务量波动

        利用弹性伸缩的报警任务,阿里云根据实例的运行指标自动弹性伸缩。

        报警任务支持:CPU、内存、平均负载、内外网出入流量、TCP连接总数。

② 有规律的业务量波动

        利用弹性伸缩的定时任务,自动定时执行弹性伸缩。

③ 无明显业务量波动

        健康检查模式,确保服务健康。

④ 混合型业务

        综合使用所有弹性策略。

⑤ 消息通知

        伸缩成功、失败、拒绝之后都可以通知信息,支持消息通知(短信、站内信、邮件)和事件通知(发送至云监控事件或者消息服务(MNS主题和MNS队列)

⑥ 生命周期挂钩

        触发弹性伸缩的时候,设置挂钩可以让实例处于挂起中状态,可以有一段自定义操作的时间,支持OOS模板

⑦ 自定义方式

        手动向伸缩组添加或者移除ECS实例。

⑧ 滚的升级

        通过任务形式批量修改ECS实例,可以为伸缩组内处理服务中的实例批量更换镜像,执行脚本、安装OOS软件包。

5、使用限制

        部署在ECS实例上的应用必须是无状态的并且支持横向扩展

        伸缩组内的ECS可能会自动释放,所以不适合保存会话记录、应用数据、日志等信息。这些信息推荐使用独立的状态实例,数据保存到RDS、日志保存到日志服务;

        不支持自动将实例添加到Memcache实例的访问白名单,需要手动添加。

        如果伸缩组关联的RDS、ALB、CLB、SLB实例的后端服务器被删除了,伸缩组自动解雇关联关系。

        如果伸缩组自动触发连续失败30天就不搞了,通知用户。

第三章 主要定义

1、工作原理

2、基础概念

① 伸缩组

        具有相同应用场景,相同实例类型的集合。伸缩组定义了组内可容纳的实例数的最大最小值、关联的负载均衡实例,关联RDS实例等属性。

② 弹性容器实例ECI

        阿里云结合容器和Serverless提供的容器运行服务。

③ 稳定实例

        特指在伸缩组中处于服务中、保护中、备用中状态的ECS实例

④ SLB负载均衡实例

        对流量进行按需分发,流量分发到不同的实例处理,提供系统整体吞吐量。

⑤ 伸缩模式

        对应不同的增加、减少实例的操作,包含:定时模式、动态模式、固定数量模式、自定义模式、健康模式、多模式并行

⑥ 实例配置信息来源

        需要指定伸缩的ECS到底要用什么配置来初始化创建ECS,支持伸缩模板和实例启动模板

⑦ 伸缩配置

        组内实例的配置信息,在创建实例的时候用到。

⑧ 伸缩规则

        步进规则、目标追踪规则、简单规则用于触发伸缩时控制增加或者减少实例的具体数量

        预测规则可以基于历史变更数据智能规定实例的数量边界值;

⑨ 自动触发任务

        分为定时任务、报警任务触发;定时任务可以指定该时间扩缩容,报警任务是根据监控到的异常指标决定是否扩缩容。

3、常见活动

① 伸缩活动

        用于记录伸缩组内实例数、伸缩组边界值、期望实例数等数量变化情况执行伸缩规则、修改边界值、修改期望实例数等操作都会触发伸缩活动

② 期望实例数

        开启期望实例数后,伸缩组会自动将实例的数量维持在期望数,无需人工干预。当然能用的前提是创建伸缩组的时候开启这个功能,开启之后可以修改的

③ 并行伸缩活动

        并且伸缩任务执行的时候可以执行其他并行任务。当以下方式触发伸缩活动就是并行伸缩活动:

        手动执行伸缩规则、定时任务执行伸缩规则;

        手动添加ECS实例,移除ECS实例;

        期望实例数检查任务、实例健康检查任务、最大最小检查任务;

④ 非并行伸缩任务

        具有排他性,不开启期望实例数功能,所有都是非并行伸缩任务

4、伸缩组流程

① 伸缩组流程

        指的是可以手动暂停、恢复的流程,包括:扩容流程、缩容流程、健康检查、定时任务、报警任务等用于更精细的控制伸缩组流程级别的动作。

② 组内实例生命周期

        指ECS在伸缩组内从创建到释放的过程。如果由伸缩组自动创建就由伸缩组管理,手动创建的ECS实例可以托管给伸缩组,也可以不托管自己管理

③ 生命周期挂钩

        伸缩组创建或者释放实例的收,不立即执行,流出一定时间给自定义操作。

④ 冷却时间

        伸缩活动后锁定一定时间不再被云监控触发伸缩活动请求,避免频繁触发。

第四章 使用流程

        必须配置并且启用伸缩组、以及组内实例配置来源。其他组件可以按需配置。

1、创建伸缩组

        使用弹性伸缩管理业务所用的ECS实例时,伸缩组是基本的管理单元。伸缩组用于管理有相同应用场景的ECS实例,并支持关联多个负载均衡实例和RDS实例。伸缩组关联负载均衡实例和RDS实例后,ECS实例加入伸缩组时会自动添加为负载均衡实例的后端服务器,其内网IP会自动加入RDS实例的访问白名单。

2、创建伸缩配置

        伸缩配置是弹性伸缩自动创建ECS实例时所使用的实例模板。一个伸缩组支持创建多个伸缩配置,但同一时间只允许一个伸缩配置处于生效状态。(如果您在创建伸缩组时,选择启动模板或者已有实例作为配置信息来源,则不用手动创建伸缩配置,可以直接启用伸缩组。)

3、启用伸缩组

        首次创建伸缩配置后,会自动提示启用伸缩组。您也可以在伸缩组列表自行启用伸缩组。

4、创建伸缩规则

        伸缩规则用于指定扩缩容ECS实例的数量等信息或者智能地设置伸缩组边界值,您可以根据业务需要创建对应类型的伸缩规则。

5、创建自动伸缩任务

        创建伸缩规则后,您可以通过自动伸缩任务自动执行伸缩规则,实现自动扩缩容。自动伸缩任务支持以下类型:

① 定时任务

        如果您可以预测业务量波动的时间,使用定时任务在指定时间自动扩缩容即可。定时任务支持设置重复周期,满足周期性自动扩缩容的需求。

② 报警任务

        如果您需要基于ECS实例的运行指标自动扩缩容,可以使用报警任务。报警任务基于云监控的监控项动态管理伸缩组内ECS实例。

第五章 伸缩组详解

1、创建伸缩组

        如果弹性伸缩的ECS无法加入RDS或者SLB访问白名单,自动创建的实例回回滚和释放,手动创建的实例则会保留下来

        一个实例只能加入一个伸缩组,并且一定要在同一个地域

2、伸缩组状态

        可以看到API中只有三种:

3、创建伸缩组限制

        同一个地域下,伸缩组的熟练有限制;

        创建的时候需要执行实例数量的边界值,最大最小值,也可以指定期望数。

        如果没有配置期望数,并且最小值大于0并且实际实例数小于最小值就自动扩容一次;如果配置了期望数,并且期望数大于0并且实际实例数不一致,就自动触发扩容一次

4、创建步骤

        登录控制台;

        顶部菜单选择地域;

        左侧导航栏选择伸缩组;

        左上角创建,完成配置后确认;

5、删除伸缩组

① 删除保护

        如果开启删除保护,就不可以通过控制台或者API删除伸缩组了。

② 删除结果

        会同时删除组内的伸缩配置和伸缩规则。

        如果有运行中的实例,会先停止实例,然后移出手动创建的实例,释放所有自动创建的实例

③ 强制删除

        先停止伸缩组,拒绝新的伸缩活动,等待已有的伸缩活动完成,移出手动,释放自动。

④ 非强制删除

        当伸缩组没有任何伸缩活动并且实例为0就可以停止伸缩组,然后删除伸缩组。

6、伸缩组内实例状态

        从加入到移出伸缩组,状态有:加入中 、加入挂起中、服务中、备用中、保护中、移出中、移出挂起中、停用中

7、自动创建ECS实例

        配置全部相同

        如果指定了RDS,系统自动将ECS的IP加入到RDS的访问白名单

        如果指定了负载均衡,系统自动将ECS加入负载均衡的后端服务器中

8、手动创建ECS实例

        实例和伸缩组必须同地域

        没有加入其他伸缩组

        实例必须运行中

        实例和伸缩组的网络类型必须一致

        伸缩组必须启用状态

        伸缩组不存在执行中的伸缩活动

        如果将手动创建的ECS托管生命周期给伸缩组,移除的时候也会释放实例,特殊的是支持将包年包月的实例添加,单不能托管

9、查看伸缩组实例列表

        登录控制台;

        左侧菜单栏点击伸缩组管理;

        选择地域;

        对伸缩组查看详情;

        实例列表页签;

        查看ECS实例;

10、移除或释放实例

        无论自动或者手动创建的实例,都可以转为备用状态、转入转出保护状态。

        如果是自动创建的实例,并且被检测出不健康了,会自动释放实例,并且另起一个健康实例替换

        如果是手动创建的时候,被检测没有运行中就会被判定不健康,自动移除伸缩组,是否释放根据是否生命周期托管决定,托管了就释放,没托管就只是移除而不释放

11、转为备用状态

       如果配置了负载均衡,备用状态后负载均衡的权重归0

        一直保持备用直到移出

        不再自动管理备用的实例的生命周期,手动维护;

        伸缩活动的时候,不会移出备用的实例

        备用的时候停止或者重启,不会更新健康检查状态

        需要先移出备用状态ECS才能释放;

        如果伸缩组删除了,备用实例会被移出并且自动解除备用状态

12、转出备用状态

        实例恢复服务;

        如果有负载均衡实例,实例会重新加入负载均衡,权重默认50

        ECS实例停止或者重启,会更新健康检查状态;

        如果发生伸缩活动,实例可以正常被移除;

13、转为保护状态

        如果配置了负载均衡实例,不会影响实例的权重

        一直保持状态直到被移出保护状态;

        伸缩活动不会移出保护状态的实例,需要手动移出才能释放;

        实例停止或者重启,不会更新健康检查状态;

14、转为停用状态

        不再提供服务,部分资源不再收费;只有EIP和云盘还要继续收费

15、手动移出或删除实例

        伸缩组启用状态,并且不存在执行中的伸缩活动,就可以移出或者删除实例

        手动操作可以绕过冷却时间直接执行

        如果删除后实例数小于边界最小值,会失败

16、自动移除策略

        支持两段设置先筛选再从结果中移出,不支持两段设置相同的选项,如果筛选后还有多个实例则随机选择

① 筛选最早伸缩配置对应的实例

        但是不会先把手动的选出来,只有移除不够数的时候才用手动的实例

② 筛选最早创建的实例

③ 筛选最新创建的实例

④ 无策略

        表示不进行第二段筛选。

第五章 伸缩配置详解

1、创建前提

        必须先创建伸缩组,如果要使用智能配置,网络类型必须是VPC。

        必须创建安全组。

2、创建步骤

        控制台-伸缩组管理-选择地域;

        选择伸缩组,打开详情;

        点击 实例配置来源 页签;

        创建伸缩组配置;

        完成基础:付费模式(按量,抢占)、配置方式(规格、智能)、镜像(公共、自定义、公共、社区)、存储、公网IP、安全组、IPv6;

        完成系统配置:标签、资源组、登录凭证(不支持创建时设置密码,SSH密钥对可以)、实例名称、主机名、RAM角色(仅VPC)、自定义数据(仅VPC)、私有池容量、专有宿主机:

        填写伸缩配置名称;

        启用配置;

3、伸缩配置状态

        Active:生效状态

        Inactive:失效状态

        Deleting:删除中

第六章 伸缩规则详解

1、规则类型

① 普通规则

        用于触发伸缩活动,增加或者减少指定数量的实例,或者将实例调整到指定数量;如果是报警任务触发的则需要等到冷却完成之后才能生效了。

② 步进规则

        基于云监控告警和分段扩缩容,通过一组策略更加精细的控制扩缩容。

③ 预测规则

        智能设置伸缩组边界,通过分析至少24小时的活动,通过机器学习预测未来48小时的监控指标

④ 目标追踪规则

        选择一个云监控指标,指定目标值。伸缩组根据目标指标自动创建报警任务,删除规则后伸缩组会同步删除自动生成的报警任务

第七章 伸缩模式详解

1、模式类型

① 固定数量模式

        由伸缩组的最大、最小实例数,或者期望实例数。

② 健康模式

        需要开始实例中的健康检查配置。

③ 定时模式

        由定时任务决定、多个定时任务时执行最早触发的一个。

④ 动态模式

        伸缩效果由报警任务决定。

⑤ 自定义模式

        需要手动添加、移出、删除实例,或者手动触发伸缩规则。

⑥ 多模式并行

        多种模式一起生效,配置也要全部都有。

2、健康模式说明

        开启健康模式后,伸缩组会定时检查实例的运行状态,如果发现一台实例位处于运行中,判定实例不健康并移出,创建新的实例加入伸缩组。

3、定时模式说明

        是一种预设任务,可以指定时间执行伸缩规则。

        如果没有设置重复周期,那么只会执行一次。

        伸缩方式可以选择已有的伸缩规则,也可以直接设置实例的最大最小值或者期望数。

        重试过期时间:为了避免定时任务执行失败,在设置的重启过期时间内会重试定时任务。

        可以在控制台操作修改或者删除定时任务、启用停用定时任务。

4、动态模式说明

        适用于没有规律的波动需求。

        需要利用云监控服务CMS,监控特定的指标,对数据指标进行实时统计,当统计值满足指定的报警条件时,触发报警任务并指定伸缩活动

        报警任务分为两类:系统监控报警和自定义报警任务。

        如果有其他非并行的伸缩活动时,报警任务触发的伸缩活动就不生效

        冷却时间内不生效。

        报警任务默认沉默时间是一分钟,一分钟内不会重复触发报警任务伸缩。

① 系统监控报警任务

        伸缩组会给组内所有实例都安装云监控客户端,GPU监控需要单独安装GPU驱动程序。

② 自定义监控报警任务

        需要主动将特定业务的监控指标上报给云监控。

③ 报警任务支持监控项

        CPU使用率、内存、系统平均负载、内外网出入流量、TCP总连接数和已建立数、系统盘读写BPS和IOPS、内网网卡收包和发包数,GPU使用率、GPU内存空闲率和使用率

第八章 伸缩活动

1、弹性扩容

2、弹性缩容

3、伸缩活动特点

        无法强行终止

        ECS实例级别的事务完整性

        有冷却时间

        可进行实例生命周期托管;

        可进行实例释放保护;

        同一个伸缩组内,统一时间只能有一个伸缩活动

4、伸缩活动自动创建ECS实例

        判断伸缩组的健康状态和边界条件;

        分配伸缩活动ID并执行活动;

        创建ECS实例;

        修改伸缩组的实例数;

        为ECS分配IP;

        将实例添加到RDS白名单;

        启动ECS实例;

        将实例添加到SLB的后端服务器组,权重就是配置的权重。

        伸缩活动完成,启动冷却。

5、伸缩活动自动移出实例

        判断申诉组健康状态;

        分配伸缩活动ID并执行活动;

        从SLB后端服务器组移出实例;

        停止实例;

        从RDS白名单移出实例;

        释放实例;

        修改伸缩组数量;

        活动完成,启动冷却。

6、手动添加实例到伸缩组

        判断伸缩组的健康状态、边界条件和实例的状态以及类型;

        分配伸缩ID并执行伸缩活动;

        将实例添加到伸缩组;

        修改伸缩组实例数;

        添加到RDS白名单;

        将实例添加到SLB的后端服务器组;

        伸缩完成,启动冷却。

7、手动移出伸缩组实例

        判断申诉组健康状态;

        分配伸缩活动ID并执行活动;

        停止SLB向实例转发流量;

        等待60S从SLB后端服务器组移出实例;

        从RDS白名单移出实例;

        修改伸缩组数量;

        移出实例;

        活动完成,启动冷却。

8、并行/非并行伸缩活动

        已设置期望实例数的伸缩组可以执行并行伸缩活动、但是不支持同时有并行和非并行伸缩活动

        未设置期望数的伸缩组不可以执行并行伸缩组。

① 并行伸缩活动

        存在执行中的并行伸缩活动时,可以执行其他并行伸缩活动。包括通过以下方式触发的伸缩活动:

  • 手动执行伸缩规则、通过定时任务执行伸缩规则。

  • 手动添加实例、手动移出实例。

  • 系统自动进行的期望实例数检查任务、实例健康检查任务、最大最小值检查任务。

② 非并行伸缩活动

        存在执行中的非并行伸缩活动时,不能执行其他伸缩活动。并行伸缩活动以外的伸缩活动均属于非并行伸缩活动。包括但不限于通过以下方式触发的伸缩活动:

  • 系统通过报警任务自动执行伸缩规则。

  • 手动在实例列表页签中执行再均衡分布。

  • 系统自动执行抢占式实例补偿任务。

9、冷却时间

        多台实例加入或者移出伸缩组,以最后一台实例为基准计算冷却时间。

        如果是停用后的再启用伸缩组,首次伸缩活动可以立即执行,不需要CD。

        非报警任务触发的伸缩活动不需要CD。

第九章 自动化运维

        通过生命周期挂钩和OOS模板实现自动化运维。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/pingmian/84363.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CANopen转Modbus TCP转换器助生产线智能化升级

在自动化工业控制领域,CANopen和Modbus TCP是两种广泛采用的通信协议。它们各自具有独特的特点和优势,但在某些应用场景中,需要设备能够同时支持这两种通信标准。这就需要一个能够实现开疆智能CANopen转Modbus TCP转换的网关KJ-TCPC-CANP设备…

C++图书管理

图书馆的书籍分类系统使用二进制标签管理,0 代表儿童读物,1 代表青少年书籍。管理员发现当前的书架排列中不允许出现青少年书籍之后连接儿童读物的情况(即 10 子串)。管理员每次可以交换任意两本书的位置。请计算让书架符合规定所…

汽车免拆诊断案例 | 2010款捷豹XFL车制动警告灯、DSC警告灯异常点亮

故障现象  一辆2010款捷豹XFL车,搭载3.0 L发动机,累计行驶里程约为35万km。车主反映,该车组合仪表上的制动警告灯、动态稳定控制系统(DSC)警告灯异常点亮(图1),且提示“DSC NOT AV…

el-upload组件,上传文件失败,:on-error方法失效

el-upload组件方法失效 问题原因解决 问题 使用el-upload组件上传文件,有这么一个问题上传文件处理报错Excel、Word。org.apache.poi.openxml4j.exceptions.OLE2NotOfficeXmlFileException。 按上述,后端编写完代码,输出正常,但…

可视化图解算法50:最小的K个数

牛客网 面试笔试 TOP101 | LeetCode 面试题 17.14. 最小K个数 1. 题目 描述 给定一个长度为 n 的可能有重复值的数组,找出其中不去重的最小的 k 个数。例如数组元素是4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4(任意顺序皆可)。 数…

Ragflow配置注意项

在 .env文件中启用v.0.19.0版本,带emabedding models RAGFLOW_IMAGEinfiniflow/ragflow:v0.19.0 RAGFlow image tagImage size (GB)Has embedding models?Stable?v0.19.0≈9✔️Stable releasev0.19.0-slim≈2❌Stable releasenightly≈9✔️Unstable nightly b…

Word VBA快速制作填空题

实例需求:Word文档用于英语单词学习,重点记忆单词标记下划线,其内容如下图所示。 现在文档转换为填空题(无论单词字符多少,填空部分统一使用10个空格)和参考答案两部分,如下图所示。 示例代码如…

不变性(Immutability)模式

1. 不变性(Immutability)模式 1.1. 不变性模式的概念 定义:对象一旦被创建,其内部状态就不再发生变化,也即“只读无写”,不会出现并发写的问题,自然线程安全。 适用场景:只读共享…

探秘鸿蒙 HarmonyOS NEXT:鸿蒙定时器,简单倒计时的场景应用

在鸿蒙 ArkTS 开发中,定时器是实现动态效果和定时任务的重要工具。基于鸿蒙 API 12 及以上版本,ArkTS 提供了功能丰富的定时器 API,本文将带你全面了解定时器的使用方法。 一、定时器常用 API 介绍 ArkTS 中的定时器主要分为一次性定时器&a…

安卓基础(语义树)

进化1 package com.example.demotest.unread;import android.accessibilityservice.AccessibilityService; import android.content.res.Resources; import android.graphics.Rect; import android.util.DisplayMetrics; import android.util.Log; import android.view.access…

Linux基础开发工具——vim工具

文章目录 vim工具什么是vimvim的多模式和使用vim的基础模式vim的三种基础模式三种模式的初步了解 常用模式的详细讲解插入模式命令模式模式转化光标的移动文本的编辑 底行模式替换模式视图模式总结 使用vim的小技巧vim的配置(了解) vim工具 本文章仍然是继续讲解Linux系统下的…

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…

AcWing--数据结构1

用数组来模拟链表。这种实现链表的方式也叫静态链表。 1.单链表 写邻接表&#xff1a;存储图和树 我们定义&#xff1a;e[N]用来表示某个点的值是多少&#xff1b;ne[N]用来表示某个点的next指针是多少 e和ne是用下标关联起来的 如&#xff1a;head->3->5->7->…

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风&#xff0c;以**「云启出海&#xff0c;智联未来&#xff5c;打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办&#xff0c;现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…

多模态分类案例实现

以下是基于飞桨平台实现的多模态分类详细案例&#xff0c;结合图像和文本信息进行分类任务。案例包含数据处理、模型构建、训练和评估的完整流程&#xff0c;并提供详细注释&#xff1a; 一、多模态分类案例实现 import os import json import numpy as np from PIL import I…

Express框架:Node.js的轻量级Web应用利器

Hi,我是布兰妮甜 !在当今快速发展的Web开发领域,Node.js已成为构建高性能、可扩展网络应用的重要基石。而在这片肥沃的生态系统中,Express框架犹如一座经久不衰的灯塔,指引着无数开发者高效构建Web应用的方向。本文章在为读者提供一份全面而深入的Express框架指南。无论您…

K-Means颜色变卦和渐变色

一、理论深度提升&#xff1a;补充算法细节与数学基础 1. K-Means 算法核心公式&#xff08;增强专业性&#xff09; 在 “原理步骤” 中加入数学表达式&#xff0c;说明聚类目标&#xff1a; K-Means 的目标是最小化簇内平方和&#xff08;Within-Cluster Sum of Squares, W…

深入解析C#表达式求值:优先级、结合性与括号的魔法

—— 为什么2/6*4不等于1/12&#xff1f; &#x1f50d; 一、表达式求值顺序为何重要&#xff1f; 表达式如精密仪器&#xff0c;子表达式求值顺序直接决定结果。例如&#xff1a; int result 3 * 5 2;若先算乘法&#xff1a;(3*5)2 17 ✅若先算加法&#xff1a;3*(52)21…

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性&#xff0c;不同版本的Docker对内核版本有不同要求。例如&#xff0c;Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本&#xff0c;Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…

Spring——Spring相关类原理与实战

摘要 本文深入探讨了 Spring 框架中 InitializingBean 接口的原理与实战应用&#xff0c;该接口是 Spring 提供的一个生命周期接口&#xff0c;用于在 Bean 属性注入完成后执行初始化逻辑。文章详细介绍了接口定义、作用、典型使用场景&#xff0c;并与其他相关概念如 PostCon…