阿里云高庆瑞:高弹性、高可用、低成本的云上资源管理最佳实践

news2024/11/20 11:38:57

云布道师

在这里插入图片描述
为了更好地帮助用户在借助 DevOps 工具缩短开发周期、提升业务效率的同时,也能让业务保持稳定、安全、可靠,且低成本地持续运营,阿里云弹性计算团队独家出品的【弹性计算技术公开课_CloudOps 云上运维季】正式启动。阿里云弹性计算团队十三位产品专家和技术专家共同分享云上运维深度实践,详细阐述如何利用 CloudOps 工具实现运维提效、弹性降本。该系列共 10 节直播课程,在阿里云官网、阿里云微信视频号、CSDN 官网、阿里云钉钉视频号、阿里云开发者微信视频号同步播出,本次课程由战略合作媒体 CSDN 独家支持。

CloudOps 云上运维系列课程第三节由阿里云弹性计算技术专家高庆瑞主讲《高弹性、高可用、低成本的云上资源管理最佳实践》,点击下方链接进入【CloudOps云上运维】课程专题页即可观看课程回放,还可了解最新课程预告。

【CloudOps 云上运维:https://developer.aliyun.com/topic/ecs-cloudops】
图片

云上资源管理面临的挑战

云上资源管理之所以面临诸多挑战,不是因为云上资源管理使用不便,而是因为云上资源管理提供了丰富的功能,而如何使业务场景更好地使用云上资源进行管理,才是真正的云上资源管理所面临挑战的原因。云上资源管理面临的挑战有3个方面,如下图:在这里插入图片描述
弹性问题,如何给予自身的业务场景构建资源弹性的能力,如当业务负债突增时,如何快速创建资源场景,是选择手动创建资源还是自动创建资源?或者不创建资源直接影响业务性能?这体现出弹性资源管理的能力差异。

可用性问题,如何构建可用的系统来满足业务稳定性需求,如当多机房部署资源的场景下,如何进行容灾管理,是进行单机房部署,还是多机房部署,还是手动维护多机房部署。或是更进一步自动进行多机房部署。当某个机房出现问题时,能够通过其他的机房来恢复业务的稳定性。这些都是对云上资源管理可用性的考验。

成本问题,如何在保障业务可用性的同时进一步降低资源成本,是按日常最大负载的资源用量进行资源部署,长时间维持资源,还是按照资源的高低峰来进行部署以降低资源的成本,或者相同的资源、相同的规格,使用不同的付费方式来降低成本等等。

由上可知,相同的业务场景,通过不同的资源管理手段可以取得比较明显的差异。在部分场景下可以实现可用性能提升,成本降低 70%,这在之后的案例中会提到。

如何实现高弹性、高可用、低成本资源管理

在这里插入图片描述
**1、高弹性、高可用、低成本资源管理之间的关系。**高弹性是一种资源管理手段,它是通过资源弹性实现资源的高可用和低成本的目标,是一种手段;高可用是资源管理的核心目标,通过资源的高可用来保障业务的稳定性,而保障业务的稳定性永远是最核心的;低成本是资源管理的次要目标,它是在保障资源可用性、业务稳定性的前提下避免资源的浪费。

综上,高弹性是实现高可用、低成本的方式。因此,要通过实现高弹性来解决高可用、低成本的问题。

2、如何利用弹伸缩服务实现业务的高弹性

(1)弹性能力

① 弹性能力的定义:弹性能力主要是解决某个业务场景下如何实现资源与业务负载波动匹配的能力,主要分为两类,一类是水平弹性,是指通过横向扩容实例的方式来解决资源负载的问题;另一类是垂直弹性,是指通过垂直扩缩的方式解决资源负载的问题。如 2C4G,垂直弹性会变成 4C8G,通过提升规格的规模来保证业务的稳定性。本节课主要讲解通过水平弹性的方式达到高弹性能力。

② 弹性能力的业务价值:弹性业务能力主要有三个业务价值,首先是高可用,其次是省成本,第三个是高效,通过下面两幅图即可简单说明弹性能力的业务价值。在这里插入图片描述
上图表示的是传统模式下的资源管理,在不具备弹性能力时,黑色的曲线表示业务的负载是动态变化的,绿色的曲线表示业务资源部署量。

观察第一条波峰曲线,日常情况下资源部署是按照略大于日常高峰期的资源量进行部署,即无论是低峰期或是高峰期,都按照最大资规模格部署,则会导致资源浪费;

观察第二个波峰曲线,一旦业务负载突增,日常的规模不能满足业务资源需求时,则会导致资源不足影响业务的稳定性,影响可用性;

观察第三个波峰曲线,一旦出现负载变化时,就需要人为介入。若人为介入,则需要人为扩容资源保证业务的稳定性,在高峰期突增之后,再人为进行资源的释放,而人为介入需要一定的成本,且效率和正确性也无法得到保障。

第二幅图表示弹性模式,黑色曲线表示业务负载,绿色曲线表示资源部署用量。理想影响情况下,弹性模式资源的部署量随业务负载变化。当业务负载增高时,部署的资源动态增加,保证业务的可用性,当业务负载降低时,资源的部署量也会动态减少,以此节约资源的成本。

这是弹性模式下的理想曲线,整个过程都是自动化实现的,无需人为介入,效率更高,同时相较于传统模式,其明显提高了突增场景下的业务可用性,此外,资源是动态扩缩的,在低峰期可以节省成本,在人为介入后,自动化弹性能够更高效地提供资源。
在这里插入图片描述
(2)实现业务弹性需要面临的挑战

如果要通过自有的实例扩缩接口来实现弹性深造能力,应解决问题如下:

① 弹性速度:弹性速度是指弹性扩容资源提供资源速度,如当业务负载高峰期时,需要紧急扩容 10 台机器运行,但实际情况下能否立刻扩容相应的机器满足业务需求,弹性的速度直接关系到种洪峰流量场景下的业务稳定性。

② 弹性成功率:弹性成功率主要是指日常的弹性扩缩任务成功的概率,稳定的弹性成功率是保证业务核心稳定、连续的关键因素。

③ 弹性效率:弹性效率主要是指当弹性进行大规模资源交付时,能否进行快速的交付,其直接关系到大规模交付场景下的业务可用性。如离线计算场景下资源不能快速大规模资源交付,会严重影响离线计算速度。

④ 弹性的准确性:最理想的情况(理想曲线)下,能够准确地随业务负载动态变化。但如果要实现较高的弹性准确性,首先需要精确的识别负载,进而精确地控制弹性扩缩,难度很大,如要保证资源采集的实时性、准确性,再进行扩缩,且要保证相应的速度,以此保证弹性的准确性。要实现高可用的弹性能力非常困难,关于四个挑战的具体的内容,此处不详细展开。

(3)业务弹性化改造

即通过阿里云弹性伸缩服务实现资源的弹性化管理。

① 弹性服务产品:弹性伸缩(Elastic Scaling Service),简称 ESS,也称为 Auto Scaling,是指根据业务负载需求和策略自动调整计算能力(即实例数量)的服务,动态调整资源实例数。它是横向弹性扩容的产品,可以指定实例的类型,目前弹性伸缩服务支持 ECS 场景和 ECI 场景。弹性伸缩不仅适合业务量不断波动的应用程序,同时也适合业务量稳定的应用程序。因为其本身提供了高可用的资源管理能力,及时不是动态扩缩,也有高可用场景。

② 工作原理:弹性伸缩服务通过伸缩组对资源进行分组,如下图所示:
图片
伸缩组对资源进行分组之后,业务可以基于自己的服务特性、服务维度进行划分,如a服务划分在一个伸缩组,b 服务划分在另一个伸缩组,伸缩组之间是彼此隔离,独立进行各自的调度。实例添加到伸缩组之后,弹性伸缩服务自动将实例统一进行监控指标的采集和聚合,提供负载计算的能力。通过不同的伸缩模式来进行动态扩缩。一般包括五种:

A.基于监控指标动态扩缩:为 CPU 规定一定的区间控制扩容和缩容。

B.自定义模式:即仅反馈给伸缩组扩容多少实例,或者释放多少实例,一般适用于高级的自动调度的服务,如 K8S 的和 cluster-autoscaler,ESS 服务为其提供了阿里云的 provider。

C.定时模式:主要适用于负载周期性变化的场景,在高峰期来临之前可以定时扩容,在高峰期过后定时缩容。

D.健康模式:适用于业务稳定的应用程序,一旦检测到某个实例状态异常,即会释放该异常实例,并将之替换,以保证实例数健康,进而保证服务的稳定性。

E.固定数量模式:指定了伸缩组维持多少实际数,如某个实例被释放,伸缩组会自动扩容来保持伸缩组实例数相同。

当扩容时,弹性伸缩服务通过伸缩配置进行实例扩容信息的制定。伸缩配置中保存了与实例相关的基本信息,如使用何种镜像、可用区等。当确定伸缩配置后,即可创建实例并自动添加到伸缩组,因为弹性伸缩服务支持云产品联动,当实例添加到伸缩组之后,可以自动将实例注册到关联的负载均衡、RDS 白名单,实现云产品之间的结合,保证云产品联动的场景下的弹性伸缩服务的能力建设。在这里插入图片描述
1.利用弹伸缩服务实现业务的高弹性

结合前面学习的实现业务弹性需要面临的挑战,即要实现高弹性需要解决的问题,包括弹性速度、弹性成功率、弹性效率和弹性准确率。通过对比 ESS 的弹性扩缩与手动管理实现弹性扩缩之间的差异,可以得出 ESS 实现高弹性能力的优势显著。

① 弹性速度:ESS 提供了秒级弹性,这得益于秒级创建的 ESI/ECS 实例,同时 ESS内置了事件驱动模型,当实例创建成功后,ESS 会自动感知进行后续的操作流程,尽快地为实例提供服务。如注册到 RDS 或 SLB。

② 弹性成功率:ESS 的弹性成功率高达 99.9%,因为 ESS 支持多规格、多可用区的组合,即一个伸缩组可以配置多个规格、多个可用区,当某个规格或者某个区资源不足时,会自动跳过该规格和可用区,进一步保证业务的扩容成功率。当对扩容成功率有要求时可以通过这种方式解决。同时,ESS 也支持内部与库存服务联动的模式,库存服务会基于多个规格、多可用区进行推荐,避免扩容时选择规格库存不足的场景提高种成功率。

③ 弹性效率:ESS 能够实现 60 秒内完成千台资源交付,其实现逻辑是通过对单次扩容的大批量资源进行拆分,然后并发进行扩容。因为一般情况下,一次实例扩容有数量限制,通过拆分并发进行批量交付的加速。另外这也得益于 ESS 弹性成功率的保障,避免了扩容失败后再次尝试扩容的不必要的耗时。

⑤ 弹性准确率:ESS 提供了高准确率保障,其内部集成了云监控,可以提供稳定的监控数据和告警。另外 ESS 本身也提供了多种模式精确匹配业务负载的场景能力,可以基于自己的应用场景选择不同的模式进行匹配,如稳定性要求高并有周期规律场景,则可以通过定时和动态的模式进行匹配,尽可能地保证弹性资源的创建与业务的负载匹配。

2.弹性资源的发布部署管理
在这里插入图片描述
通过 ESS 建立弹性能力之后就能够解决很大一部分场景的弹性资源管理问题,但对于有些需要对弹性资源进行发布部署管理的场景,还需要解决弹性资源的发布部署的问题。

① 弹性资源发布部署管理问题:弹性资源发布部署主要有两个问题,第一个问题是发布部署的实例是动态变化的,应如何进行统一的发布部署;第二个问题是如果版本更新后,未来弹性扩容的实例如何使用最新的版本。

② 弹性资源发布部署管理方式:主要包括两种方式,一般情况下是镜像和包。

镜像:泛指 VM 镜像和容器镜像,镜像发布场景流程基本相同,首先进行镜像的构建,通过镜像对所有的弹性实例进行滚动升级,更新镜像信息使得未来扩容的实例使用最新的镜像。

包:发布方式主要是五个流程,首先进行软件包构建和上传,然后进行弹性实例的包发布的滚动升级,更新弹性资源关联的包信息,接下来创建未来弹性扩容的实例,进行包的部署,使得弹性扩容的实例使用最新的包。

③ ESS 支持的发布部署方式:主要提供四种管理方式。

ESS 控制台:目前支持镜像和包两种方式,操作相对比较简单,它的缺点在于用户需要自行构建镜像或软件包的构建和上传,仅对后续步骤进行管理

OSS 管理:相较于第一种方式,他额外支持控制台操作和 API 操作。控制台的管理方式与第一种相同,都需要用户自己构建镜像和软件包。

云效流水线发布:使用云效产品,其流水线功能可以进行 CI/CD 流程的定义,实现从源码到镜像构建、包构建上传的完整流程,可以管理整个流程。目前仅支持 ECI 镜像发布部署及 ECS 包发布部署。

D. Jenkins发布部署:提供了 Jenkins 插件,适用于本地进行软件包的构件,进行管理发布部署的方式。优点在于可以实现在自己的环境下进行整体的弹性资源的滚动发布部署管理。缺点在于目前仅支持 ECS 软件包的方式,暂不支持镜像方式。

具备弹性能力和发布部署能力之后,基本上就可以实现整个完整的资源的弹性管理。在这里插入图片描述

如何使用 ESS 解决高可用问题

(1)几种常见的资源高可用需求,一般情况下,资源高可用需求包括以下四个:

① 负载突增高可用需求:当业务的负载突增时,如何保证资源的高可用,ESS 支持多种组合模式,可以保证高负载场景下进行正确的弹性扩容,保证资源的稳定性和服务的可靠性。

② 异地容灾高可用需求:ESS 支持多可用区弹性,通过多可用区弹性能够实现资源的多可用区均衡分布,实现资源的高可用容灾。

③ 小规模场景高可用需求:如资源部署只有 1~2 台,虽然规模较小,但对服务稳定性需求较高。一般情况,在小规模场景下,单个实例受损会严重影响服务的可用性。ESS 支持弹性实例健康检查,通过支持异常实例状态检测,自动进行异常实例替换,保证小规模资源高可用的场景。

④ 资源打散高可用需求:该场景要求对同一业务资源进行不同的宿主机打散,ESS 支持宿主机打散,可以创建的弹性资源打散到不同的宿主机,避免资源之间相互影响。同时也避免因资源布置在同一宿主机宕机导致大规模影响。在这里插入图片描述
(2)多种伸缩模式满足各种业务负载波动场景

① 定时模式:对应业务负载周期性变化的场景:可以根据定时任务动态地定时增加或减少资源,如周五 13:00 扩容 N 台机器,高峰期之后再定时缩容。

② 动态模式:通过动态模式可用应对负载变化不规律的种场景,如使用 cpu 监控指标进行负载的动态扩缩,满足业务高峰期的负载,若 CPU 负载较高,动态扩容来满足业务资源的高可用。

③ 手动+动态模式:用于应对突发场景,首先,使用包年包月的实例,确保业务基座稳定。当业务突增时,辅以动态模式弹性扩容应对突发场景,保证整体资源的可用性。

④ 定时+动态模式:应对负载周期性变化,同时又有突增的场景,在高峰期之前定时扩容几台机器,若高峰期还有突增,则再通过动态扩容应对高可用的需求。

关于模式的选择,可以给予自己的用户场景进行参考,利用弹性弹性扩容提供的资源高可用来保证业务的稳定性。在这里插入图片描述

如何使用 ESS 实现低成本管理

(1)ECS 灵活的付费方式:ESS 的付费方式主要有 5 种,其特点和应用场景如上图所示。

弹性服务的低成本能力主要集中在包年包月、按量付费和抢占式实例,通过三种付费方式的组合实现种降低成本的目标。

(2)使用 ESS 实现低成本管理过程如下图:
在这里插入图片描述
灰色柱状图表示传统模式下包年包月付费场景,黄色表示按量资源,橘黄色表示Spot 资源。整个改造过程经历了低成本管理介入的方式,过去使用包年包月、按照固定的规格、模式来进行部署,在负载变化时资源部署量也不会改变。

首先进行业务资源弹性改造,弹性接入,接入之后就实现了按量资源的弹性,业务的资源可以随着业务的负载动态变化。但相对于 Spot 而言,按量付费较为昂贵,因此可以通过将按量和 Spot 进行组合的方式进一步减少费用。但为了保证资源按量和Spot 组合后的稳定性、可用性足够高,可以使用多规格组合的方式。因为不同规格组合,可以避免 Spot 实例的一次性回收,因为不同的规格和 Spot 策略是不同,进而降低 Spot 集中回收带来的稳定性影响。即按量弹性之后先进行规格组合提高业务的可用性,再进行 Spot 与按量组合降低成本。

多付费类型组合弹性场景示如下图所示:
在这里插入图片描述
这里有 6 个组合案例。可以看做两组,A、B、C 其实使用的是底座弹性资源高可用,D、E、F 是一种弹性全托管。区别在于底座使用了包年包月的方式,相对于弹性全托管,资源稳定性更强,但由于其资源固定、不释放,其成本相对较高。

对于弹性资源的管理,分为了全按量、按量和 Spot 组合、全 Spot 3 种。对于这3种组合方式,若按量比例越高,稳定性更强,但成本也会更高,随着组合中Spot比例的增,成本越来越低,但稳定性会越来越差。

以上提供的 6 个案例中无法绝对性地认为哪一种更好,而要结合用户自己的业务场景来进行选择。如离线计算场景下如何选择付款组合方式,由于离线计算对实时性要求不高,且对任务执行有容错性,对于资源的可用性要求不高,但一般情况下离线计算的场景任务较多,规模较大,这意味着其成本压力也较大,即此时对于资源的需求是成本更低,但对资源的可用性要求更低。这种情况下,可以选择 E 或 F。对于核心服务,一般会选择 A,因为其可用性最高。在这里插入图片描述
案例一:人工智能企业

用户痛点:业务的用户的痛点有两个:首先,由于它是人工服务的供应商,它的峰谷之间的波动比较剧烈,它的最高峰达低峰期的 16 倍之多,它之前的部署方式都是按照保有的高峰期的资源进行部署,成本很高,有大量的闲置,存在资源利用率低的问题;另外,业务的访问量虽然有明显的周期性变化,但偶尔会有突增流量,及时按照最大部署稳定性也会存在问题。

解决方案:首先盘点业务的所有资源,使用 Spot 和按量组合弹性的方式,多个可用区之间保有包年包月实例进行基础稳定性的保障,组合使用按量实例来进行弹性扩缩保证其应对高峰期。即通过 Spot + 按量通过定时和动态监控任务进行组合,一般在高峰期之前定时扩容,在突发流量时通过监控扩容进一步保证资源的可用性。

使用效果:通过弹性化改造实现了应对高峰期流量的动态波动,提高了用户的可用性,同时由于释放了大量的成本,节约了约 24% 的成本。
在这里插入图片描述
案例二:技术服务平台【汇量科技】
用户痛点:该平台服务范围较广,涉及设备的规模非常大、地域覆盖范围广,对于资源和成本的诉求都特别高,首先,它类似于峰谷,波动剧烈,白天的流量是晚上的几十倍,同时价格也较为敏感。他原本使用了 Spot 实例降低成本,但是,Spot 的价格波动也经常会导致资源成本的上升。

解决方案:使用 ESS 成本优化策略,简单来说,就是当有多个规格,Spot 和按量组合时,选择价格最低的方式进行资源的交付。同时,多可用区容灾可用将 Spot 实例打散,使用多可用区、多实例规格的方式避免一次性大规模 Spot 实例回收导致额服务稳定性差,进一步保证资源的稳定性。另外它还使用了 ESS 提供的提前补偿策略,在 Spot 实例被抢占之前弹性伸缩,自动地选择价格更低的实例进行替换,避免 Spot 的断崖式释放。

可以看到在未开启 Spot 补偿之前,如果使用单个规格,那么大批量的 Spot 实例被释放,在过了一段时间之后,才能弹性扩容,其间的断崖异常会导致业务资源需求出现缺口,对业务的稳定性影响较大。若使用提前补偿策略,在 Spot 实例被回收之前的五分钟感知到实例即将被回收,提前创建替代实例来补偿被回收的 Spot 实例,保证种资源的稳定性。

效果:优化效果较为显著,用弹性伸缩的成本优化策略,结合 Spot 实例自动补偿,以 30% 的成本完成了过去的业务交付,相当于节省了 70% 的成本。

总结与展望

在这里插入图片描述
本节课程从高可用、高弹性、低成本的资源管理方式,总结了一些经验。要实现高弹性、高可用性、低成本的资源管理,首先要进行弹性化改造来实现资源的弹性管理,然后基于弹性能力建立资源的高可用的管理能力,资源的高可用是最优先满足的;最后,在满足资源高可用的前提下,再进行资源的成本优化。课程中主要以弹性伸缩服务为例来进行讲解,但实际上可以用的弹性伸缩工具有很多,如开源社区的 K8S 的HPA,阿里云的 ACK(K8S弹性在云上的实现)、EHPC、EMR 等,我们可以结合自己的场景诉求使用弹性能力进行高可用、低成本的资源管理。

以上就是本节课程的全部内容,同时欢迎大家扫描下方海报中的二维码进入【CloudOps云上运维】课程官网,了解最新课程资讯!
在这里插入图片描述

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

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

相关文章

提升服装门店管理效率与顾客体验的RFID智慧门店解决方案

随着科技的不断进步,传统的服装门店在管理过程中面临着一些瓶颈和挑战,条码管理费时费力,服装查找耗时长,库存盘点不准确,销售管理不科学,顾客体验性较差等问题已经成为制约门店发展的难题,为了…

小程序之实例会议OA的首页 (3)

⭐⭐ 小程序专栏:小程序开发专栏 ⭐⭐ 个人主页:个人主页 目录 ​编辑 一.前言 二.flex弹性布局 flex属性 2.1 display: flex 弹性布局属性 2.2 flex-direction属性 2.3 flex-wrap属性 2.4 flex-flow属性 2.5 justify-content属性 三.首页轮播…

12.Bilinear Forms

Bilinear Forms 双线性形式 Metric Tensor 度量张量是双线性形式的一种。 在学习张量积之前,先讨论一般的线性形式 回顾一下上一节学的 Metric Tensor 度量张量所表示的矩阵 是个 对称矩阵。, 度量张量的性质: 双线性形式 定义&#xf…

《算法通关村第二关——终于学会链表反转了》

《算法通关村第二关——终于学会链表反转了》 今天学习链表反转 为什么反转这么重要呢?因为反转链表涉及结点的增加、删除等多种操作,能非常有效考察思维能力和代码驾驭能力。另外很多题目也都要用它来做基础, 例如指定区间反转、链表K个一…

大数据之LibrA数据库系统服务部署原则及运行环境要求

服务部署原则 FusionInsight LibrA集群由多种服务按照一定的逻辑架构组合而成,每个服务包含一个或多个角色,每个角色可以部署一个或多个实例。 服务:服务对外表现为集群提供的组件业务能力,集群中的每个组件对应一个服务名&…

DayDreamInGIS 逆地理编码工具(根据经纬度获取位置描述)插件源码解析

本工具调用高德地图逆地理编码api,根据高的地图逆地理编码api,实现根据经纬度获取位置描述。 总体设计逻辑,窗体采用WPF,通过属性的方式传递交互对象,核心处理逻辑写到button的执行逻辑中。 1.页面 页面XAML&#xf…

6个步骤轻松实现 postman 接口压力测试(建议收藏)

这里讲是postman做接口并发测试,基础用法不做赘述 1、第一步接口可以通的情况下点击右上角save 2、将相应信息填入 3、如果是同一个接口修改不同的值如下图 现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文…

LevelDB总结

leveldb架构 顺序写:level db不需要在各个level中去修改位置,而是只要放到最新的memTable中插入,所以在读取数据时如果在上层找到了数据或者数据flag是已删除就不需要继续寻找了。所以其能够提供比读更好的性能。 一、memTable 1.1 LSM-Tre…

mavicat打开本地连接显示2002-Can‘t connnect to server on ‘localhost‘(10061)

报错如下:2002-Can’t connnect to server on ‘localhost’(10061),原因是没有打开mysql 具体操作如下: 按键:CtrlAltDelete打开资源管理器 在服务里找到MySQL然右击“开始”,启动mysql 然后再点击连接,…

mysql备份数据库

目录 准备工作 写入密码至my.ini中 为了安全性,创建备份用户 1、在windows命令行的方式 2、在mysql中,使用定时计划自动执行。(待研究) 准备工作 写入密码至my.ini中 mysqldump如果直接明文显示密码,会报错&…

uni-app checkout(多选)radio(单选)选中之后样式不会出现钩子

前言 最近在实际开发过程中发现项目的多选和单选选中之后都是只有颜色,没有钩子,或者是另外图案 刚开始并不重视,猜测可能是微信基础库的bug,可能换个基础库就行了,或者是编辑器显示问题 最后在查阅之后才发现&#…

Python哪个版本最稳定好用2023.10.19

环境: win10 专业版 Python 问题描述: python哪个版本最稳定好用 解决方案: 目前,Python 的最新版本是 3.11.0。然而,对于大多数用户来说,Python 3.8 和 3.9 是最稳定和好用的版本,因为它们…

【LINUX】 LINUX | 提取U盘映像

LINUX | 提取U盘映像 时间:2023年10月19日10:57:18 参考: 怎么提取U盘映像文件 提取U盘映像的方法 (0451nkw.com) 实践

Maven的详细介绍(maven的全据配置以及idea中maven的配置)

maven的理解 Maven 是一个强大的项目管理和构建自动化工具,它通过抽象的项目对象模型(POM:Project Object Model)和构建生命周期模型(Project Lifecycle)来对项目及其构建过程进行管理(Dependency Management System),Maven 最大化的消除了构…

跟我一起写个虚拟机 .Net 7(三)- 安装LC-3 模拟器和编译器

LC-3(Little Computer 3) 是一门教学用的虚拟计算机模型,主要是为了方便学生了解简单化的计算机结构。 主要想学习《计算机系统概论》上的案例,基本都是通过LC-3 模拟器和LC-3编译器来的,所以,把安装的方式…

Spring源码解析——事务的回滚和提交

正文 上一篇文章讲解了获取事务,并且通过获取的connection设置只读、隔离级别等,这篇文章讲解剩下的事务的回滚和提交。最全面的Java面试网站 回滚处理 之前已经完成了目标方法运行前的事务准备工作,而这些准备工作最大的目的无非是对于程…

【1024程序员节】代码写诗(C++版)

#include <bits/stdc.h> #include <sal.h> using namespace std;class Sky { //天上 public:_Success_(return false) bool Sea(_In_opt_ int* Run) { //不复回int sea *Run;return false;} private:str…

倒计时 2 天!本周六,Apache Doris 年度技术盛会相约北京!

峰会官网已上线&#xff0c;最新议程请关注&#xff1a;doris-summit.org.cn 即刻报名 Doris Summit 是 Apache Doris 社区一年一度的技术盛会&#xff0c;由飞轮科技联合 Apache Doris 社区的众多开发者、企业用户和合作伙伴共同发起&#xff0c;专注于传播推广开源 OLAP 与实…

简单了解一下:Node全局对象和事件监听和触发

Node的全局对象&#xff0c;就是整个应用都能引用的对象。Node本身内置了多个全局变量、全局对象和全局函数。 全局变量有两个&#xff1a;__filename和__dirname&#xff0c; __filename&#xff1a;表示当前正在执行的脚本文件名&#xff1b; __dirname&#xff1a;当前脚本…

【前端学习】—Promise基本知识(十六)

【前端学习】—Promise基本知识&#xff08;十六&#xff09; 一、class和function的区别 相同点&#xff1a;都可以用作构造函数不同点&#xff1a;class不可以使用call apply bind的方式来改变它的执行上下文 二、Promise 定义&#xff1a;Promise是异步编程的一种解决方案…