评测|PolarDB MySQL 版 Serverless

news2024/11/16 21:30:22

评测|PolarDB MySQL 版 Serverless

目录

一、测试背景

1.1、云原生数据库 PolarDB Serverless新架构概念

1.2、Serverless资源弹性扩缩触发条件

二、PolarDB的Serverless能力与同类型产品进行对比

三、动态弹性升降资源的能力测试

3.1、测试资源

3.2、测试一、主节点Serverless弹性压测

3.2.1、设置Serverless弹性策略

3.2.2、主节点Serverless弹性压测

(1)、初始化相关数据

(2)、256并发读写混合压测

(3)、Serverless性能监控指标

3.2.3、测试结论

3.3、测试二、只读节点Serverless弹性压测

3.3.1、设置Serverless弹性策略

3.3.2、读写混合压测

(1)、初始化相关数据

(2)、读写混合压测

(3)、性能监控

3.3.3、测试结论

3.4、测试三、只读节点Serverless并发压测

3.4.1、设置Serverless弹性策略如测试3.3

3.4.2、只读并发压测

(一)自动扩容能力测试

(二)自动缩容能力测试

(三)性能监控

3.4.3、测试结论

3.5、测试四、全局一致性(SCC)测试

 3.5.1、设置Serverless弹性策略

 3.5.2、全局一致性(SCC)测试

 3.5.3、测试结论

四、异常反馈

4.1、数据库节点异常

4.2、只读节点异常

五、测试总结


一、测试背景

1.1、云原生数据库 PolarDB Serverless新架构概念

云原生数据库 PolarDB:

  云原生数据库 PolarDB 是阿里云自研产品,在存储计算分离架构下,利用了软硬件结合的优势,为用户提供秒级弹性、高性能、海量存储、安全可靠的数据库服务。100%兼容MySQL和PostgreSQL生态,支持分布式扩展,高度兼容Oracle语法。产品具有多主多写、多活容灾、HTAP 等特性,交易性能最高可达开源数据库的6倍,分析性能最高可达开源数据库的400倍,TCO 低于自建数据库50%。

  数据库是现代企业IT系统中非常重要的一部分。在创建数据库时,客户往往需要比较保守地去配置数据库集群的资源,包括CPU、内存、存储以及连接数等多种参数配置,以确保业务能够在波峰和波谷都能平稳运行。在这种情况下,客户购买的集群资源在业务波谷时期会被闲置,导致整体成本偏高;而在业务压力增长阶段,集群资源又应对不足。

  第一代云原生数据库无法实现计算和内存资源解耦,导致目前云原生数据库价格依然高于RDS和自建数据库,这也是其无法占据大部分市场的核心原因。

  随着PolarDB Serverless新架构的率先提出,原生数据库的困境出现极大改变。

PolarDB Serverless的最大创新之处在于:

  ▶ 在业内首次实现了内存与计算/存储的解耦,内存进一步池化,形成三层池化,使得弹性能力有数量级的提升。

  ▶ 内存池化大幅度降低了成本,实现了完全地按量使用和按需弹性,贴合各种场景。

Serverless集群的技术架构图

  PolarDB Serverless构建了一个全新的数据库形态,即DCaaDB(Datacenter as a Database)。整个IDC形成一个多租户的大数据库,其全部的CPU、内存和存储构成三个独立的资源池。在资源池未耗尽的情况下,任何一个用户(租户)都可以任意的弹性扩展任何一种资源到任何一个规格,用户为其SQL动态消耗的CPU、内存和存储买单,不需要预置任何的规格。

  这种情况下,CPU和内存资源因其池化其使用率将会大幅度提升,云原生数据的成本将会远低于自建和RDS等一体化数据库,云原生技术的价值将会得到充分的体现

  Serverless数据库能够使得数据库集群资源随客户业务负载动态弹性扩缩,将客户从复杂的业务资源评估和运维工作中解放出来。

1.2、Serverless资源弹性扩缩触发条件

纵向扩缩:指节点的性能(CPU和内存的规格)发生变化。
横向扩缩:指只读节点的数量发生变化。

资源弹性扩展触发条件

纵向扩展触发条件:

  PolarDB主要监控主节点和只读节点的CPU使用率、内存使用率和其他内核层面指标。

  在监控周期内,出现如下三种情况中的任意一种时,通常会触发Serverless资源纵向扩展:

  ▶ 当单节点的CPU使用率高于80%,会触发本节点资源扩展。

  ▶ 当单节点的内存使用率高于90%,会触发本节点资源扩展。

  ▶ 当只读节点的规格小于主节点规格的一半时,会触发只读节点资源扩展。例如,当只读节点的规格是4 PCU,主节点的规格是10 PCU时,会触发只读节点资源扩展到不小于5 PCU的规格。

横向扩展触发条件:

  当只读节点已经纵向扩展到设定上限,集群中现有的只读节点的CPU使用率或内存使用率仍然满足纵向扩展的条件(CPU使用率高于80%或内存使用率高于90%),则会触发只读节点的横向扩展。

资源弹性收缩触发条件:

  当单节点的CPU使用率低于50%且内存使用率低于80%时,会触发本节点资源收缩。

说明:
  以上条件适用于Serverless集群和普通集群的Serverless功能。
  以上阈值指标是默认值,在不同集群内核参数以及不同Serverless配置策略下,会有所调整。

二、PolarDB的Serverless能力与同类型产品进行对比

  在业务波动较大的场景下,普通集群和Serverless集群资源使用和规格变化情况如下图:

  由上图可以看到,在业务波动较大的场景下:

普通集群:

  在波谷期浪费的资源较多,在高峰期资源不足,业务受损。

Serverless集群:

  由于其规格随业务需求量随时调整,总体浪费的资源很少,提升了资源利用率,降低了资源使用量。在高峰期也能完全满足业务需求,保证业务不受损,提高了系统的稳定性。打破固定资源付费模式,做到了负载与资源动态匹配的按量付费模式,可节省大量成本。无需手动变配,提高了运维效率,提升了运维管理人员和研发人员的幸福感。具备弹性扩缩能力,适合业务数据量大、并具有典型的业务访问波峰波谷场景。

三、动态弹性升降资源的能力测试

3.1、测试资源

3.1.1、场景资源信息⬇️

  • 云服务器ECS

  云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。一台云服务器ECS实例等同于一台虚拟服务器,内含CPU、内存、操作系统、网络配置、磁盘等基础的组件。

  ECS实例ID:i-uf6c2imr50uapz33734j

  CPU&内存:16核(vCPU)64 GiB
  操作系统:Alibaba Cloud Linux 2.1903 LTS 64位
  当前使用带宽:5Mbps (峰值)

  • 云原生关系型数据库PolarDB

  云原生关系型数据库PolarDB是阿里巴巴自主研发的下一代云原生关系型数据库,100%兼容MySQL、PostgreSQL、高度兼容Oracle语法。 计算能力最高可扩展至1000核以上,存储容量最高可达 100TB。

数据库1名称:mytest
数据库2名称:sct
数据库3名称:sbtest
数据库账号名称:test_user
数据库登录密码:Password123
PolarDB实例ID:pc-uf6x937e5n0fw6138、pc-uf68j17rqld9xwh9d
PolarDB集群私网地址:
pc-uf6x937e5n0fw6138.rwlb.rds.aliyuncs.com
pc-uf68j17rqld9xwh9d.rwlb.rds.aliyuncs.com

3.1.2、测试工具⬇️:

  • Sysbench工具

  Sysbench是一款开源的多线程性能测试工具,可以执行数据库只读、只写、读写混合等类型的性能测试。

  • SCC(Strict Consistency Cluster)服务

  严格一致性集群SCC(Strict Consistency Cluster)服务。SCC功能为PolarDB for MySQL Serverless提供了跨节点无损读扩展的能力。PolarTrans事务系统利用提交时间戳技术CTS和RDMA网络,在内核层面提供集群强一致性读SCC服务,在不损失性能的基础上,保证发往集群任意副本的读请求都可以获得强一致性的结果。

3.2、测试一、主节点Serverless弹性压测

3.2.1、设置Serverless弹性策略

• 单节点资源弹性上限为:32 PCU。
• 单节点资源弹性下限为:1 PCU。
• 只读节点个数扩展上限:0。
• 只读节点个数扩展下限:0。
• 是否开启无活动暂停:关闭。
• 定时执行:立即执行

3.2.2、主节点Serverless弹性压测

  本测试模拟客户端对PolarDB发起写请求,验证主节点的Serverless智能弹性能力。通过Sysbench脚本访问集群地址进行压测,PolarDB主节点的规格能够根据负载进行自动伸缩与自动配置,达到Serverless的能力。

  本样例使用读写混合的压测类型(oltp_read_write),并发数为32线程。

(1)、初始化相关数据

切换至Web Terminal。

执行如下命令,初始化相关数据。

sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-host=pc-uf6x937e5n0fw6138.rwlb.rds.aliyuncs.com --mysql-port=3306 --mysql-user=test_user --mysql-password=Password123 --mysql-db=sbtest --tables=128 --table-size=1000000 --report-interval=1 --range_selects=1 --db-ps-mode=disable --rand-type=uniform --threads=256 --time=12000 prepare

运行结果: 

  由于初始化数据的负载也会造成Serverless弹升,初始化执行完毕后等待2-3min,在规格下降到初始状态(1PCU)后,再执行下面的正式的压测命令。

(2)、256并发读写混合压测

  执行如下命令,开始进行256并发读写混合压测。

sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-host=pc-uf6x937e5n0fw6138.rwlb.rds.aliyuncs.com --mysql-port=3306 --mysql-user=test_user --mysql-password=Password123 --mysql-db=sbtest --tables=128 --table-size=1000000 --report-interval=1 --range_selects=1 --db-ps-mode=disable --rand-type=uniform --threads=256 --time=12000 run

输出结果:

 

时间

tpslat (ms,95%)

1s

255.11861.95

2s

302.081109.09

3s

206.001304.21

4s

299.011109.09

5s

235.001506.29

26s

1592.99200.47 

27s

2080.13 200.47

28s

2004.91186.54

29s

2314.91186.54 

30s

2731.85176.73

54s

5157.28

68.05

55s5174.67

68.05

56s5249.0868.05
57s5135.8568.05
58s5249.05

68.05

  根据Sysbench输出返回结果可以直接观察到,

  随着时间的推移,在同样的并发数下,tps逐渐上升,延迟(lat)逐渐下降,最终到达一个稳定值,这说明PolarDB的处理能力借助Serverless弹性获得提升。

(3)、Serverless性能监控指标

  在计算节点页签,查看主节点负载情况。

  可以看到随着主节点PCU CPU使用率的不断提升,PCU数量从

  状态(1)2023-11-23 19:17:17 PCU=1,

  迅速上升至

  状态(2)2023-11-23 19:17:53 PCU=32,

  (本次测试用时为36秒)

  不到1分钟内从1 PCU弹升到最大上限32 PCU。

  压测持续一段时间后,切换至Web Terminal中执行Ctrl+C,停止压测脚本。

  切换至性能监控,

  可以观察到,当压测请求完全停止后,主节点PCU CPU使用率会立即下降,而PCU数量随后也会逐步自动缩小至1 PCU。

3.2.3、测试结论

  通过Sysbench脚本访问集群地址,模拟客户端对PolarDB发起写请求,进行压测,PolarDB主节点的Serverless能够根据负载进行自动伸缩与自动配置,具有智能弹性能力。PolarDB的处理能力借助Serverless弹性获得提升。

  资源弹升速度快,不到1分钟时间内(本次测试用时为36秒)从1 PCU弹升到最大上限32 PCU,1秒内完成弹升。

3.3、测试二、只读节点Serverless弹性压测

  只读节点Serverless弹性压测

  本测试模拟客户端对PolarDB发起读请求,验证只读节点的Serverless智能弹性能力。PolarDB for MySQL Serverless集群除了支持主节点自动弹性伸缩之外,还支持创建只读节点分摊主节点的读请求。当使用集群地址时,PolarDB for MySQL Serverless可以基于读负载的比例,智能地调整只读节点的个数和各自的规格,来达到最佳的Serverless能力。

  PolarDB for MySQL Serverless集群主节点PCU扩容到弹升上限后,会自动创建新的只读节点并分摊部分主节点的读负载,最终使整个集群能够支撑更高的TPS请求量。

3.3.1、设置Serverless弹性策略

• 单节点资源弹性上限为:32 PCU。
• 单节点资源弹性下限为:1 PCU。
• 只读节点个数扩展上限:7。
• 只读节点个数扩展下限:0。
• 是否开启无活动暂停:关闭。
• 定时执行:立即执行

3.3.2、读写混合压测

(1)、初始化相关数据

  切换至Web Terminal。

  执行如下命令,初始化相关数据。

sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-host=pc-uf68j17rqld9xwh9d.rwlb.rds.aliyuncs.com --mysql-port=3306 --mysql-user=test_user --mysql-password=Password123 --mysql-db=sbtest --tables=128 --table-size=1000000 --report-interval=1 --range_selects=1 --db-ps-mode=disable --rand-type=uniform --threads=256 --time=12000 prepare

运行结果: 

  由于初始化数据的负载也会造成Serverless弹升,初始化执行完毕后等待2-3min,在规格下降到初始状态(1PCU)后,再执行下面的正式的压测命令。

(2)、读写混合压测

  执行如下命令,开始进行读写混合压测。

  切换至Web Terminal。

  执行如下命令,通过访问PolarDB for MySQL Serverless集群私网地址发起256并发读写混合压测请求。

sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-host=pc-uf68j17rqld9xwh9d.rwlb.rds.aliyuncs.com --mysql-port=3306 --mysql-user=test_user --mysql-password=Password123 --mysql-db=sbtest --tables=128 --table-size=1000000 --report-interval=1 --range_selects=1 --db-ps-mode=disable --rand-type=uniform --threads=256 --time=12000 run

 

 

  从Sysbench输出可以直接观察到,随着时间的推移,在同样的并发数下,tps逐渐上升,延迟(lat)逐渐下降,最终到达一个稳定值。这说明PolarDB的处理能力借助Serverless弹性获得提升。

(3)、性能监控

  在监控页上,可以查看到集群维度的Serverless监控指标,选择压测的时间段可以看到类似如下信息:

  从监控可以看出,PolarDB收到读写混合请求后,主节点会首先迅速弹升到最大的32 PCU,之后监控逐步出现两个只读节点。当只读节点分摊主节点的读请求后,主节点CPU使用率逐步下降,规格最终稳定在24PCU。

  第一个只读节点创建后,也会立刻弹升到32 PCU。此时系统会尝试继续创建只读节点,分摊读请求。第一个只读节点稳定在30PCU。第二个只读节点稳定在29PCU。

  我们可以看到,由于目前第二个只读节点没有到最大规格32 PCU,系统判断目前Serverless规格已经满足实际负载,不会再继续增加新的只读节点。

3.3.3、测试结论

  初始状态下,在读写混合场景下,读写流量会首先转发到集群唯一节点,即主节点(RW)中。

  当主节点弹升到最大规格后,Serverless系统会逐个创建只读节点,分摊主节点的读请求,直到只读节点的数量满足当前负载。

  当只读节点分摊读请求后,主节点负载会降低,触发PCU弹降,为未来支持更多写负载预留了弹升空间。

3.4、测试三、只读节点Serverless并发压测

3.4.1、设置Serverless弹性策略如测试3.3

3.4.2、只读并发压测

(一)自动扩容能力测试

  切换至Web Terminal。

  打开一个新的Terminal(第一个测试3.3Terminal中的压测命令先不要停止)。

  在新的Terminal中执行如下命令,通过访问PolarDB for MySQL Serverless 集群地址发起256并发的只读请求。

sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-host=pc-uf68j17rqld9xwh9d.rwlb.rds.aliyuncs.com --mysql-port=3306 --mysql-user=test_user --mysql-password=Password123 --mysql-db=sbtest --tables=128 --table-size=1000000 --report-interval=1 --range_selects=1 --db-ps-mode=disable --rand-type=uniform --threads=256 --time=12000 run

 

  当数据库接收到新的只读负载后,首先当前的2个只读节点会弹升到最大规格32 PCU,之后Serverless系统会继续创建新的只读节点,直到满足新增只读负载的要求。

选择性能监控。

  在监控页上,可以查看集群维度的Serverless监控指标,选择只读请求的压测时间段,查看Serverless的状态:

(二)自动缩容能力测试

  切换至Web Terminal。

  执行Ctrl+C停止所有的Sysbench脚本(包括oltp_read_write和oltp_read_only)。

(三)性能监控

  在监控页上可以看到PolarDB for MySQL Serverless的计算节点首先会自动缩容(预计耗时1-2min),之后新增的只读节点会逐步回收(预计耗时15-20min)。

  等待较长时间后,最终PolarDB会缩容到只有一个主节点的状态。

  说明:时间比较久,预计需要15-20min。趁着只读节点还没回收,可以直接做下一个全局一致性测试。

3.4.3、测试结论

  从上面的实验可以看出,PolarDB for MySQL Serverless的节点数量和规格都能够根据负载进行自动伸缩与自动配置。

3.5、测试四、全局一致性(SCC)测试

  全局一致性(SCC)测试

  高性能全局一致性SCC特性可以为PolarDB for MySQL Serverless提供跨节点无损读扩展的能力,即RO的无损强一致读。传统的Serverless的方案均是基于单机原地升降配实现,其规格受限于单物理机资源。而当RO能借助SCC提供无损强一致读后,针对大部分读多写少业务,可以跨机提供CPU资源,上限远超单物理机限制。

  开源的mysqlsct工具用于检验数据库集群的强一致性读能力, 该工具通过跨session的写入+读取+结果对比的方式来测试数据库集群强一致性读的功能和性能。

  本测试使用mysqlsct工具验证的无损强一致读的特性。在Serverless默认开启SCC的状态下,PolarDB通过RO实现读扩展,且不会读到不一致的数据。在关闭SCC后,同样测试条件下,使用RO分摊读请求则无法满足强一致。

  为了更方便地测试RO一致性读,先调整Serverless配置,确保测试过程中,至少保留一个只读节点。

 3.5.1、设置Serverless弹性策略

• 单节点资源弹性上限为:32 PCU。
• 单节点资源弹性下限为:1 PCU。
• 只读节点个数扩展上限:7。
• 只读节点个数扩展下限:1。
• 是否开启无活动暂停:关闭。
• 定时执行:立即执行

  设置参数后,实例状态为配置切换中,切换预计需要1-2min,请等待实例状态变成运行中后再执行后面的操作。

 3.5.2、全局一致性(SCC)测试

  切换至Web Terminal。

  执行如下mysqlsct测试命令。

/root/mysqlsct --host-rw=pc-uf68z4el2op35ozy1.rwlb.rds.aliyuncs.com --host-ro=pc-uf68z4el2op35ozy1.rwlb.rds.aliyuncs.com --port-rw=3306 --port-ro=3306 --user=test_user  --password=Password123 --iterations=100000 --table-cnt=1 --table-size=1000 -f=0 --concurrency=1 --database=sct --sc-gap-us=0 --report-interval=2 --test-mode=sct

执行后,可以看到一致性检查全部通过,输出的信息类似如下截图:

  选择参数配置。

  单击页面左上角的修改参数按钮,修改loose_innodb_polar_scc参数为OFF,单击提交修改,单击确定,关闭SCC特性。

  切换至Web Terminal。

  重新执行mysqlsct测试命令。

/root/mysqlsct --host-rw=pc-uf68z4el2op35ozy1.rwlb.rds.aliyuncs.com --host-ro=pc-uf68z4el2op35ozy1.rwlb.rds.aliyuncs.com --port-rw=3306 --port-ro=3306 --user=test_user  --password=Password123 --iterations=100000 --table-cnt=1 --table-size=1000 -f=0 --concurrency=1 --database=sct --sc-gap-us=0 --report-interval=2 --test-mode=sct

 

  执行后,可以看到一致性检查出现失败,输出的信息类似如下截图:

 3.5.3、测试结论

  从上面的实验可以看出,PolarDB for MySQL Serverless借助高性能全局一致性SCC特性,提供了跨节点无损读扩展的能力。

四、异常反馈

4.1、数据库节点异常

  正常情况下,当主节点升至32 PCU时,此时系统会尝试继续创建只读节点,分摊读请求。而只读节点到最大规格32 PCU时,系统判断目前Serverless规格超出实际负载,会继续增加新的只读节点。

  但测试过程中,碰到过几次不断增加并发压测,但数据库节点不增加只读节点的情况。此时在性能监控显示页里也没有增加只读节点。等了很久时间也没有增加只读节点,数据显示也不正常。

4.2、只读节点异常

  出现了只读节点PCU数量为0的异常情况。不断增加并发压测,但有一个只读节点PCU数量始终为0不变化。

五、测试总结

  在PolarDB Serverless架构下,我对数据库性能进行了测试。 纵向扩缩:指节点的性能(CPU和内存的规格)发生变化。横向扩缩:指只读节点的数量发生变化。

1. 资源弹升速度:PolarDB可支持5秒探测窗口,1秒内完成弹升。资源弹升速度快,不到1分钟时间内(本次测试用时为36秒)从1 PCU弹升到最大上限32 PCU。

2. 资源伸缩广度:PolarDB支持自动纵向扩展(0~32核)和横向扩展(0~8个节点),支持0~256核范围内伸缩。

3. 资源伸缩的稳定性:PolarDB支持对业务无感的纵向扩缩容与横向扩展

4. 资源伸缩的颗粒度:PolarDB支持最小0.5PCU颗粒度的资源伸缩

5. 可支持自动启停:PolarDB可支持在没有访问需求时,计算资源可缩为0。当有访问需求时,10秒即可唤醒资源。

6. 全局数据的强一致性:PolarDB可支持所有只读节点的数据强一致性,并且性能不下降。

  云原生数据库 PolarDB MySQL版Serverless能够根据业务负载,对集群资源进行秒级动态弹降,具有动态弹性升降资源的能力,通过多节点架构保障集群的高可用,自动弹升范围广,单集群支持无感伸缩,可实现秒级弹升,能够从容应对业务负载突增,全程对业务无影响。PolarDB MySQL版Serverless支持自动启停能力。当没有连接时,集群自动暂停,释放计算成本;当请求到来时,集群自动无感启动。

             推荐阅读:

AIGC 是通向 AGI 的那条路吗?
数字人,虚拟数字人——你看好数字人领域的发展吗?
大数据的关键技术之——大数据采集
[你找到牵手一辈子的人了吗?] 七夕情人节特辑
数字技术能让古籍“活过来”吗?
心情不好时,帮自己训练个AI情绪鼓励师吧(基于PALM 2.0 finetune)
深度学习框架TensorFlow
人工智能开发人员工作流程、看法、工具统计数据
2023 年6月开发者调查统计结果——最流行的技术(2)
2023 年6月开发者调查统计结果——最流行的技术(1)
让Ai帮我们画个粽子,它会画成什么样呢?

9e598365ba5344e282453e71a676a056.jpeg​​​​​

b9b9f2b9374646798ca554110a498cda.jpeg​​​​​

23f61e3eac99458296be0fedea10019e.jpeg​​​​​

给照片换底色(python+opencv)猫十二分类基于大模型的虚拟数字人__虚拟主播实例

bfa502b957c247a7872d7e645d4c6f03.jpeg​​​​​

2f073e39924e42d2b33221f4262dcc1d.jpeg​​​​​

9d7e2b6a00aa45fd82291f0d5f9eea7e.jpeg​​​​​

计算机视觉__基本图像操作(显示、读取、保存)直方图(颜色直方图、灰度直方图)直方图均衡化(调节图像亮度、对比度)

01bfb23f2f894ee0b0164f52e57bbbbc.png​​​​​

47c92d6cf9fe4d279a142480a4340a0d.png​​​​​

1620a2a7b0914c42b3a8254e94269a79.png​​​​​

语音识别实战(python代码)(一)

 人工智能基础篇

 计算机视觉基础__图像特征

93d65dbd09604c4a8ed2c01df0eebc38.png​​​​​

 matplotlib 自带绘图样式效果展示速查(28种,全)

074cd3c255224c5aa21ff18fdc25053c.png​​​​​

Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(一)

fe88b78e78694570bf2d850ce83b1f69.png​​​​​

62e23c3c439f42a1badcd78f02092ed0.png​​​​​

cb4b0d4015404390a7b673a2984d676a.png​​​​​

立体多层玫瑰绘图源码__玫瑰花python 绘图源码集锦

 Python 3D可视化(一)

让你的作品更出色——词云Word Cloud的制作方法(基于python,WordCloud,stylecloud)

e84d6708316941d49a79ddd4f7fe5b27.png​​​​​

938bc5a8bb454a41bfe0d4185da845dc.jpeg​​​​​

0a4256d5e96d4624bdca36433237080b.png​​​​​

 python Format()函数的用法___实例详解(一)(全,例多)___各种格式化替换,format对齐打印

 用代码写出浪漫__合集(python、matplotlib、Matlab、java绘制爱心、玫瑰花、前端特效玫瑰、爱心)

python爱心源代码集锦(18款)

dc8796ddccbf4aec98ac5d3e09001348.jpeg​​​​​

0f09e73712d149ff90f0048a096596c6.png​​​​​

40e8b4631e2b486bab2a4ebb5bc9f410.png​​​​​

 Python中Print()函数的用法___实例详解(全,例多)

 Python函数方法实例详解全集(更新中...)

 《 Python List 列表全实例详解系列(一)》__系列总目录、列表概念

09e08f86f127431cbfdfe395aa2f8bc9.png​​​​​

6d64357a42714dab844bf17483d817c0.png​​​​​

用代码过中秋,python海龟月饼你要不要尝一口?

 python练习题目录

03ed644f9b1d411ba41c59e0a5bdcc61.png​​​​​

daecd7067e7c45abb875fc7a1a469f23.png​​​​​

17b403c4307c4141b8544d02f95ea06c.png​​​​​

草莓熊python turtle绘图(风车版)附源代码

 ​草莓熊python turtle绘图代码(玫瑰花版)附源代码

 ​草莓熊python绘图(春节版,圣诞倒数雪花版)附源代码

4d9032c9cdf54f5f9193e45e4532898c.png​​​​​

c5feeb25880d49c085b808bf4e041c86.png​​​​​

 巴斯光年python turtle绘图__附源代码

皮卡丘python turtle海龟绘图(电力球版)附源代码

80007dbf51944725bf9cf4cfc75c5a13.png​​​​​

1ab685d264ed4ae5b510dc7fbd0d1e55.jpeg​​​​​

1750390dd9da4b39938a23ab447c6fb6.jpeg​​​​​

 Node.js (v19.1.0npm 8.19.3) vue.js安装配置教程(超详细)

 色彩颜色对照表(一)(16进制、RGB、CMYK、HSV、中英文名)

2023年4月多家权威机构____编程语言排行榜__薪酬状况

aa17177aec9b4e5eb19b5d9675302de8.png​​​​​​

38266b5036414624875447abd5311e4d.png​​​​​

6824ba7870344be68efb5c5f4e1dbbcf.png​​​​​

 手机屏幕坏了____怎么把里面的资料导出(18种方法)

【CSDN云IDE】个人使用体验和建议(含超详细操作教程)(python、webGL方向)

 查看jdk安装路径,在windows上实现多个java jdk的共存解决办法,安装java19后终端乱码的解决

1408dd16a76947e4a7eb3c54cd570d95.png​​​​​

vue3 项目搭建教程(基于create-vue,vite,Vite + Vue)

fea225cb9ec14b60b2d1b797dd8278a2.png​​​​​

bba02a1c4617422c9fbccbf5325850d9.png​​​​​

37d6aa3e03e241fa8db72ccdfb8f716b.png​​​​​

2023年春节祝福第二弹——送你一只守护兔,让它温暖每一个你【html5 css3】画会动的小兔子,炫酷充电,字体特

 别具一格,原创唯美浪漫情人节表白专辑,(复制就可用)(html5,css3,svg)表白爱心代码(4套)

SVG实例详解系列(一)(svg概述、位图和矢量图区别(图解)、SVG应用实例)

5d409c8f397a45c986ca2af7b7e725c9.png​​​​​

6176c4061c72430eb100750af6fc4d0e.png​​​​​

1f53fb9c6e8b4482813326affe6a82ff.png​​​​​

【程序人生】卡塔尔世界杯元素python海龟绘图(附源代码),世界杯主题前端特效5个(附源码)HTML+CSS+svg绘制精美彩色闪灯圣诞树,HTML+CSS+Js实时新年时间倒数倒计时(附源代码)

 2023春节祝福系列第一弹(上)(放飞祈福孔明灯,祝福大家身体健康)(附完整源代码及资源免费下载)

fffa2098008b4dc68c00a172f67c538d.png​​​​​

5218ac5338014f389c21bdf1bfa1c599.png​​​​​

c6374d75c29942f2aa577ce9c5c2e12b.png​​​​​

 tomcat11、tomcat10 安装配置(Windows环境)(详细图文)

 Tomcat端口配置(详细)

 Tomcat 启动闪退问题解决集(八大类详细)

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

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

相关文章

Linux时间命令—— 显示时间,日历等

目录 1.date显示时间 1.1 常用的标记列表: 1.2 设定时间: 2.cal显示日历 3.时间戳 1.date显示时间 date 用法:date [OPTION] ... [FORMAT] 1.1 常用的标记列表: %H : 小时 (00..23) %M : 分钟 (00..59) %S : 秒 (00..61…

Java【XML 配置文件解析】

前言 最近考试周忙得要死,但我却不紧不慢,还有三天复习时间,考试科目几乎都还没学呢。今天更新一个算是工具类-XML文件的解析,感觉还是挺有用的,之后可以融进自己的项目里。 XML 配置文件解析 0、导入依赖 有点像我…

Vue3 设置点击后滚动条移动到固定的位置

需求&#xff1a; 点击不通过按钮&#xff0c;显示红框中表单&#xff0c;且滚动条滚动到底部 &#xff08;显示红框中表单默认不显示&#xff09; <el-button click"onApprovalPass">不通过</el-button> <div class"item" v-if"app…

计算机组成原理-磁盘存储器

文章目录 总览外存储器磁盘存储器磁盘的性能指标磁盘地址磁盘的工作过程磁盘阵列 总结 总览 外存储器 磁盘存储器 写是利用电流产生磁场从而写磁盘 读是利用载磁体移动时产生的电场从而得到数据 磁性材质易受外界磁场干扰 下图中 载磁体上N S的前后顺序代表对应存储二进制的比…

pwn:[SWPUCTF 2021 新生赛]nc签到

题目 linux环境下显示为 配合题目的下载附件&#xff0c;发现过滤了一些&#xff0c;一旦输入这些会自动关闭程序 ls被过滤了&#xff0c;可以使用l\s cat和空格都被过滤了&#xff0c;cat可以换成c\at ,空格可以换成$IFS$9

HarmonyOS ArkTS 给应用添加动画(十一)

1 概述 属性动画&#xff0c;是最为基础的动画&#xff0c;其功能强大、使用场景多&#xff0c;应用范围较广。常用于如下场景中&#xff1a; 页面布局发生变化。例如添加、删除部分组件元素。页面元素的可见性和位置发生变化。例如显示或者隐藏部分元素&#xff0c;或者将部…

什么是合封芯片工艺,合封芯片工艺工作原理、应用场景、技术要点

芯片封装技术不断进步&#xff0c;其中合封芯片工艺作为一种先进的芯片封装技术&#xff0c;“超”广泛应用于各类电子设备中。 本文将从合封芯片工艺的工作原理、应用场景、技术要点等方面进行深入解读。 一、合封芯片工艺 合封芯片工艺是一种将多个芯片或不同的功能的电子模…

Stable Video Diffusion重磅发布,快来看看哪些功能

本周&#xff0c;有关 OpenAI 宫斗的报道占据了Ai圈版面的主导地位&#xff0c;吃够了奥特曼的大瓜。我们来看看Stability AI刚发布的Stable Video Diffusion&#xff0c;这是一种通过对现有图像进行动画处理来生成视频的 AI 模型。基于 Stability 现有的Stable Diffusion文本到…

HCIA-RS基础:动态路由协议基础

摘要&#xff1a;本文介绍动态路由协议的基本概念&#xff0c;为后续动态路由协议原理课程提供基础和引入。主要讲解常见的动态路由协议、动态路由协议的分类&#xff0c;以及路由协议的功能和自治系统的概念。文章旨在优化标题吸引力&#xff0c;并通过详细的内容夯实读者对动…

可视化工作流管理流程及工具

Leangoo领歌是一款永久免费的专业的敏捷开发管理工具&#xff0c;提供端到端敏捷研发管理解决方案&#xff0c;涵盖敏捷需求管理、任务协同、进展跟踪、统计度量等。 Leangoo领歌上手快、实施成本低&#xff0c;可帮助企业快速落地敏捷&#xff0c;提质增效、缩短周期、加速创新…

爆款软文写作三大技巧,请查收

好的软文可以吸引目标受众&#xff0c;提升品牌知名度&#xff0c;但对于缺乏软文写作经验的人来说&#xff0c;往往是头快想秃了文案都写不出一句话&#xff0c;今天媒介盒子就来分享&#xff1a;爆款软文写作技巧。 一、 了解受众 做营销不管是线上营销还是线下营销&#x…

深眸科技聚焦AI机器视觉检测,驱动3C电子行业集成创新实现新需求

随着消费的升级及国家政策的助推&#xff0c;国内3C电子市场不断扩大&#xff0c;行业实现高速发展。近年来&#xff0c;3C电子产品持续迭代&#xff0c;生产工艺也逐渐复杂化&#xff0c;相关生产线定位组装、零部件检测、整机产品检测等环节&#xff0c;亟需使用具备较强适应…

HDX读卡器牛羊管理RFID设备品牌

半双工HDX&#xff08;Half Duplex&#xff09;技术是ISO11784/5中规定的另一种标签与读写器之间的通讯方式&#xff0c;与全双工工&#xff08;FDX&#xff09;相比&#xff0c;HDX通常识别能力更强&#xff0c;有更大的识别距离。在HDX读写器的射频场与HDX标签响应期间关闭&a…

友思特分享 | Neuro-T:零代码自动深度学习训练平台

来源&#xff1a;友思特 智能感知 友思特分享 | Neuro-T&#xff1a;零代码自动深度学习训练平台 欢迎关注虹科&#xff0c;为您提供最新资讯&#xff01; 工业自动化、智能化浪潮涌进&#xff0c;视觉技术在其中扮演了至关重要的角色。在汽车、制造业、医药、芯片、食品等行业…

python正则表达式re.sub()函数解析(替换字符串中的匹配项)

文章目录 Python正则表达式与re.sub()函数解析引言正则表达式基础什么是正则表达式&#xff1f;正则表达式的组成 Python中的re模块re模块概览re模块常用函数 re.sub()函数解析函数原型使用示例简单替换使用函数进行替换 高级替换技术引用分组条件替换 总结 Python正则表达式与…

双11后观察:中国电商产业带的数字新叙事

在电商平台走过的第十五个双11后&#xff0c;产业带的数字化蓝图也更加完整。但在电商平台与产业带相互补足的背景下&#xff0c;一个更值得思考的问题是&#xff0c;随着电商平台的低价竞争愈演愈烈&#xff0c;产业带上的供应链能力能否跟上&#xff1f; 作者|思杭 编辑|皮…

GTC2023全球流量大会蓄势待发,菊风在7B57展位等你!

第六届 GTC 全球流量大会&#xff08;以下简称 GTC2023&#xff09;将于12月5日- 6日&#xff0c;在深圳福田会展中心7&#xff06;8号馆举办。 据悉&#xff0c;本届大会将是历届以来规模最大、参与人数最多、跨境出海资源最丰富的一次行业盛会。7、8 号馆共 15000 平方米&am…

SSM大学生社团信息管理系统-99953,(免费领取源码)计算机毕业设计选题开题+程序定制+论文书写+答辩ppt书写 包售后 全流程

SSM大学生社团信息管理系统APP 摘 要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;高校当然也不能排除在外。大学生社团信息管理系统APP是以实际运用为开发背景&#xff0c…

IDEA回滚代码到指定版本

1. 先建一个分支 2. git日志&#xff0c;我们想要回滚类删除以前的版本恢复这个测试类 3. 右键日志版本&#xff0c;进行reset 4. 这里直接选择hard 5.可以看到已经恢复 6.推送到远程分支 7.这里选择强制推送 如果没有此标&#xff0c;直接git push --force 8. 切换master不影响…