Spine-Leaf 与 传统三层架构:全面对比与解析
本文将详细介绍Spine-Leaf架构,深入对比传统三层架构(Core、Aggre、Access),并探讨其与Full-mesh网络和软件定义网络(SDN)的关联。通过通俗易懂的示例和数据中心网络分析,我将帮助您理解Spine-Leaf的二层与三层设计,以及它在现代网络中的核心价值。
1. 引言
数据中心网络的演变
在过去的几十年里,数据中心网络经历了从简单局域网到复杂分布式系统的巨大变革。20世纪90年代,数据中心主要依赖简单的二层交换网络,服务器通过集线器或低端交换机互联。随着互联网的普及,企业开始需要更高性能的网络,传统三层架构(Core、Aggregation、Access)应运而生。这种架构在清晰划分功能的同时,满足了当时中小型数据中心的需求。
然而,进入21世纪后,云计算、大数据和虚拟化的兴起对网络提出了新的挑战。传统三层架构逐渐暴露出带宽瓶颈、延迟高和扩展性不足的问题。例如,在虚拟化环境中,虚拟机之间的东西向流量(East-West Traffic)激增,而传统架构更适合南北向流量(North-South Traffic),无法高效应对新的流量模式。于是,Spine-Leaf架构在2010年左右开始崭露头角,以其扁平化设计和高性能成为现代数据中心的标配。
Spine-Leaf与传统三层架构的兴起
Spine-Leaf架构通过减少网络层次、优化数据路径,解决了传统三层架构在高流量环境下的局限性。它的设计灵感部分来源于Full-mesh网络的高连接性,但通过分层优化降低了复杂性和成本。同时,软件定义网络(SDN)的引入为Spine-Leaf注入了动态管理和自动化的能力,使其在现代数据中心中占据主导地位。
例如,谷歌、亚马逊等云计算巨头在其数据中心中广泛采用了Spine-Leaf架构,以支持大规模分布式计算和存储。相比之下,传统三层架构仍适用于一些中小型企业,但其局限性在高负载场景下日益明显。
本文目标与结构
本文的目标是通过通俗易懂的语言和实际案例,帮助读者理解Spine-Leaf架构的核心概念,明确其与传统三层架构的差异,并探讨其与Full-mesh和SDN的联系。文章分为七个部分,从架构解析到对比分析,再到未来展望,力求全面且深入浅出。
2. 传统 Core-Aggregation-Access 架构解析
三层架构的组成与功能

传统三层架构是数据中心网络的经典设计,由以下三个层次组成:
-
Access层(接入层):这是网络的最底层,直接连接服务器、存储设备或终端用户。Access层交换机通常提供高密度的端口(例如48个千兆以太网端口),负责接收和转发数据包。
-
Aggregation层(汇聚层):作为中间层,Aggregation层连接多个Access层交换机,负责流量汇聚、策略实施(如VLAN划分、访问控制列表ACL)和部分冗余功能。它通常配备更高性能的交换机。
-
Core层(核心层):网络的骨干层,负责高速数据转发,确保Access层和Aggregation层之间的快速通信。Core层设备需要极高的吞吐量和可靠性。
这种层次化设计类似于高速公路系统:Access层是地方道路,Aggregation层是连接城市的高速公路,而Core层则是国家主干道。这种结构在早期数据中心中非常有效,因为它清晰地划分了职责,易于管理和维护。
优势与局限性
优势:
-
结构清晰:层次分明,职责明确,适合中小型网络。例如,一个拥有50台服务器的办公室网络可以通过三层架构轻松管理。
-
易于管理:通过分层设计,管理员可以独立配置每个层次。例如,可以在Aggregation层单独调整VLAN设置,而不影响Core层。
-
成本可控:Access层可以使用低成本交换机,降低初始投入。例如,一个小型企业可以用不到5000元的设备搭建基础网络。
局限性:
-
扩展性差:增加新设备需要调整Aggregation层和Core层的配置,复杂且耗时。例如,添加新的Access交换机可能需要重新规划上行链路。
-
带宽瓶颈:Aggregation层容易成为流量瓶颈,尤其在高流量场景下。例如,当多台服务器同时传输数据时,Aggregation交换机的上行端口可能超载。
-
高延迟:数据需要经过多层转发,增加了网络延迟。例如,从一台服务器到另一台服务器可能需要经过4跳(Access → Aggregation → Core → Aggregation → Access)。
适用场景与实际案例
适用场景:传统三层架构适合中小型企业或对网络性能要求不高的场景,例如传统企业办公网络或小型数据中心。它在流量模式简单、扩展需求不高的环境中表现出色。
案例:某中小型企业的数据中心部署了三层架构,包含4台Access交换机(每台48端口)、2台Aggregation交换机和1台Core交换机。该架构支持了约200台服务器,初期运行良好。Access层使用千兆以太网,Aggregation层通过10Gbps链路连接到Core层,日均流量约500Mbps,网络延迟稳定在2ms左右。
然而,随着业务增长,服务器数量翻倍至400台,流量激增至2Gbps。Aggregation层的10Gbps上行链路成为瓶颈,延迟增加到约5ms,部分业务(如数据库同步)受到影响。这暴露了传统架构在高负载场景下的不足。
3. Spine-Leaf 架构详解
Spine-Leaf的定义与结构

Spine-Leaf架构是一种双层网络拓扑,设计简洁但功能强大。它包含以下两层:
-
Leaf层(叶层):直接连接服务器、存储设备或其他终端,负责数据的接入和转发。每台Leaf交换机通常具有高密度端口(例如48个10Gbps端口)和若干上行端口(例如4个40Gbps端口)。
-
Spine层(脊层):连接所有Leaf交换机,提供高带宽、低延迟的通信路径。Spine交换机通常是高性能设备,专注于高速转发。
在Spine-Leaf架构中,每个Leaf交换机都与所有Spine交换机相连,但Leaf交换机之间没有直接连接。这种部分网状设计(Partial Mesh)在性能和可扩展性之间取得了平衡。可以用一个简单的比喻来理解:Spine层像高速公路的枢纽,Leaf层是连接城市的出口,所有城市通过枢纽快速互通。
二层与三层Spine-Leaf设计
Spine-Leaf架构根据使用的协议层分为二层和三层设计,每种设计适用于不同规模和需求的场景。
-
二层Spine-Leaf:
-
特点:Leaf层与Spine层之间使用二层协议(如Ethernet),通过MAC地址转发数据。通常依赖生成树协议(STP)或MLAG技术避免环路。
-
适用场景:小型数据中心或对延迟要求极高的场景,例如低延迟交易系统。
-
示例:一个小型数据中心部署了4台Leaf交换机和2台Spine交换机。每台Leaf交换机通过10Gbps链路连接到所有Spine交换机,形成一个二层网络,支持约100台服务器。配置中使用了MLAG(多链路聚合)确保冗余。
-
优势:配置简单,延迟低(通常小于1ms)。
-
局限性:广播风暴风险高,扩展性有限(受限于二层域的大小)。
-
-
三层Spine-Leaf:
-
特点:Leaf层与Spine层之间使用三层路由协议(如OSPF、BGP),通过IP地址转发数据。通常采用ECMP(等价多路径路由)实现负载均衡。
-
适用场景:大型数据中心,需要高扩展性和网络隔离,例如云计算环境。
-
示例:一个大型数据中心部署了16台Leaf交换机和4台Spine交换机。每台Leaf交换机通过40Gbps链路连接到所有Spine交换机,使用BGP路由协议,支持约1000台服务器。ECMP确保流量均匀分布在所有Spine链路上。
-
优势:高扩展性,支持网络分区(如VXLAN分段)。
-
局限性:配置复杂度较高,需要熟悉路由协议。
-
核心优势与特点
-
高可扩展性:增加Leaf或Spine交换机即可扩展网络,无需重新设计。例如,添加一台Leaf交换机只需将其连接到所有Spine交换机。
-
低延迟:扁平化设计减少了数据转发跳数,延迟通常低于传统三层架构。例如,从一台服务器到另一台服务器只需2跳(Leaf → Spine → Leaf)。
-
高带宽:多条路径提供充足的带宽,适合高流量场景。例如,4台Spine交换机可为每台Leaf提供160Gbps的总上行带宽。
-
高冗余性:多Spine设计确保即使部分链路或设备故障,网络仍可正常运行。例如,若一台Spine交换机宕机,其他Spine仍可承载流量。
示例:小型与大型数据中心的Spine-Leaf部署
-
小型数据中心:某初创公司部署了一个Spine-Leaf网络,包含4台Leaf交换机和2台Spine交换机。每台Leaf交换机通过10Gbps链路连接到Spine交换机,支持100台服务器。二层设计使用MLAG技术,延迟保持在0.8ms以内。该公司主要运行Web应用,流量需求较低,架构满足了初期扩展需求。
-
大型数据中心:某云计算提供商部署了一个三层Spine-Leaf网络,包含32台Leaf交换机和8台Spine交换机。每台Leaf交换机通过100Gbps链路连接到Spine交换机,使用BGP路由,支持5000台服务器。该架构支持大规模虚拟化环境(使用VXLAN分段),网络性能提升30%,延迟降至0.5ms。
标签:#Spine-Leaf #二层网络 #三层网络 #数据中心
4. Spine-Leaf 与 Core-Aggregation-Access 的对比
拓扑结构对比
以下是两种架构的拓扑结构对比表:
| 特性 | Core-Aggregation-Access | Spine-Leaf |
|---|---|---|
| 层次 | 三层(Core、Aggregation、Access) | 双层(Spine、Leaf) |
| 连接方式 | 层次化连接,Access到Aggregation到Core | 部分网状,Leaf全连Spine |
| 扩展方式 | 增加Aggregation或Core设备 | 增加Leaf或Spine交换机 |
| 典型跳数 | 3-4跳 | 1-2跳 |
传统三层架构像一棵树,数据从树叶(Access)经过树枝(Aggregation)到树干(Core)。Spine-Leaf则像一个网格,数据通过最短路径在Leaf之间跳转。
性能与延迟分析
-
传统三层架构:数据从Access层到Core层通常需要3-4跳,延迟较高(约2-5ms)。Aggregation层容易成为瓶颈,尤其在东西向流量激增时。例如,虚拟机迁移可能导致Aggregation层端口利用率达到90%以上。
-
Spine-Leaf:数据从Leaf到Spine只需1-2跳,延迟低(约0.5-1ms)。多Spine设计提供充足带宽,避免瓶颈。例如,ECMP可将流量均匀分布到所有Spine链路上。
示例:在某数据中心测试中,传统三层架构的平均延迟为3.2ms,带宽利用率在高峰期受限为8Gbps。而Spine-Leaf架构的延迟为0.8ms,带宽利用率提升至40Gbps,性能提升约75%。
可扩展性与管理复杂度
-
传统三层架构:扩展需要调整Aggregation和Core层的配置,涉及复杂的链路规划和协议调整。例如,添加新Access交换机可能需要重新配置上行链路的LACP(链路聚合控制协议)。管理复杂度随规模增加而显著上升。
-
Spine-Leaf:扩展只需添加Leaf或Spine交换机,配置简单。例如,新增一台Leaf交换机只需将其连接到所有Spine交换机并更新BGP邻居。管理复杂度低,BGP等协议进一步简化了大型网络的管理。
数据中心案例分析
案例:某电商公司原使用三层架构,包含8台Access交换机、4台Aggregation交换机和2台Core交换机,支持1000台服务器。Access层使用千兆端口,Aggregation层通过10Gbps链路连接Core层。随着业务增长,服务器数量增加到2000台,流量从5Gbps激增至20Gbps。Aggregation层带宽不足,延迟增加到4ms,影响了数据库查询和页面加载速度,用户体验下降。
该公司转型到Spine-Leaf架构,部署16台Leaf交换机和4台Spine交换机,使用三层BGP路由。每台Leaf交换机通过40Gbps链路连接Spine,总带宽提升至160Gbps。转型后,网络延迟降至0.9ms,带宽利用率提升40%,支持了更高的并发流量,客户满意度显著提高。
标签:#网络性能 #可扩展性 #架构对比
5. Full-mesh 网络与 Spine-Leaf 的关系
Full-mesh网络的定义与特点
Full-mesh网络是一种高度连接的拓扑,每个设备都与其他所有设备直接相连。例如,在一个5节点的Full-mesh网络中,每节点有4条链路,总计10条链路。
-
特点:提供最低延迟(1跳)和最高冗余性,但布线和维护成本随设备数量平方级增长(N*(N-1)/2条链路)。
-
适用场景:小型高性能网络,如金融交易系统或小型集群。
示例:某交易公司部署了一个5节点的Full-mesh网络,每节点通过10Gbps链路互联。延迟低至0.2ms,但布线成本高昂,且扩展到6节点时需新增5条链路,复杂度激增。
Spine-Leaf的部分网状设计
Spine-Leaf可以看作Full-mesh的优化变体:
-
连接方式:每个Leaf交换机与所有Spine交换机相连,形成部分网状拓扑。Leaf交换机之间不直接连接,减少了布线复杂性。例如,4台Leaf和2台Spine只需8条链路,而Full-mesh需12条。
-
优势:在性能和成本之间取得平衡,适合中大型数据中心。
Full-mesh与Spine-Leaf的对比与联系
| 特性 | Full-mesh 网络 | Spine-Leaf 架构 |
|---|---|---|
| 连接性 | 全互联 | Leaf全连Spine |
| 延迟 | 最低(直接连接) | 低(1-2跳) |
| 扩展性 | 差(布线复杂) | 强(易于扩展) |
| 成本 | 高 | 适中 |
联系:Spine-Leaf借鉴了Full-mesh的高连接性思想,但通过分层设计降低了复杂性。例如,Spine层充当中央枢纽,确保Leaf间通信高效,同时避免了Full-mesh的全互联开销。
示例:某金融公司的小型数据中心尝试部署Full-mesh网络,包含10台交换机,每台交换机需要9条链路,总计45条链路,布线成本高且维护困难。后来改为Spine-Leaf架构(5台Leaf、2台Spine),链路数减少到10条,延迟从0.2ms增至0.6ms,但成本降低50%,扩展性显著提升。
标签:#Full-mesh #部分网状 #网络拓扑
6. SDN 与 Spine-Leaf 的协同作用
SDN的基本原理
SDN(软件定义网络)通过将网络的控制平面与数据平面分离,实现了集中式管理和动态配置:
-
控制平面:由SDN控制器(如OpenFlow控制器)负责,管理网络策略和流量路径。它像网络的“大脑”,集中决策。
-
数据平面:由交换机和路由器执行,负责数据转发。它像网络的“手臂”,执行控制器的指令。
例如,在传统网络中,每台交换机独立运行OSPF协议计算路径;而在SDN中,控制器统一计算并下发路由表,简化了设备逻辑。
SDN如何增强Spine-Leaf架构
SDN与Spine-Leaf的结合显著提升了网络的灵活性和效率:
-
动态流量优化:SDN控制器实时监控Spine-Leaf网络的流量,动态调整路径以实现负载均衡。例如,当某条Spine链路拥堵时,控制器可将流量切换到其他链路。
-
自动化配置:通过SDN,管理员可以快速部署VLAN、QoS等策略,减少手动配置时间。例如,一次性为100台Leaf交换机配置VXLAN只需几分钟。
-
快速故障恢复:SDN检测到Spine或Leaf交换机故障时,可自动切换到备用路径。例如,若一台Spine宕机,控制器可在秒级内重新分配流量。
SDN在数据中心中的实际应用
案例:某云服务提供商在其Spine-Leaf数据中心中引入SDN控制器,实现了自动化流量管理。数据中心包含32台Leaf和8台Spine,支持5000台服务器。在一次流量高峰期间,某Spine链路利用率达到90%,SDN动态调整了数据路径,将流量分担到其他Spine,避免了网络拥堵,性能提升25%。此外,网络配置时间从数小时缩短到几分钟,新业务的部署效率大幅提高。
7. Spine-Leaf 的未来与建议
数据中心网络的未来趋势
随着云计算、AI和5G的快速发展,数据中心网络将面临更高的性能和灵活性需求:
-
智能化:AI驱动的网络管理将预测流量模式并优化性能。例如,AI可根据历史数据调整Spine-Leaf的负载均衡策略。
-
高带宽:400Gbps甚至800Gbps链路将成为Spine-Leaf的标准。例如,2023年已有厂商推出支持800Gbps的Spine交换机。
-
深度融合:Spine-Leaf与SDN、NFV(网络功能虚拟化)的结合将更加紧密。例如,NFV可将防火墙功能虚拟化到Leaf层。
Spine-Leaf与新兴技术的融合
未来的Spine-Leaf架构将集成更多新兴技术:
-
AI优化:通过机器学习预测网络故障,提前调整路径。例如,AI可预测Spine交换机的过载风险并提前分流。
-
零信任安全:结合SDN实现动态安全策略,保护数据中心。例如,每个Leaf交换机可根据SDN指令实时验证流量来源。
总结
Spine-Leaf架构以其扁平化、高性能和高可扩展性的特点,取代了传统Core-Aggregation-Access架构,成为现代数据中心的基石。它通过优化Full-mesh网络的高连接性思想,并结合SDN的动态管理能力,在性能、灵活性和管理效率上展现了巨大优势。从小型初创公司到云计算巨头,Spine-Leaf已被广泛应用,并将在AI和5G时代继续演进。无论您是网络工程师还是技术爱好者,理解Spine-Leaf及其与传统架构的差异,都将为您在未来网络领域的发展奠定坚实基础。
相关文章:
Spine-Leaf 与 传统三层架构:全面对比与解析
本文将详细介绍Spine-Leaf架构,深入对比传统三层架构(Core、Aggre、Access),并探讨其与Full-mesh网络和软件定义网络(SDN)的关联。通过通俗易懂的示例和数据中心网络分析,我将帮助您理解Spine-L…...
Vmware esxi 查看硬盘健康状况
起因 硬盘掉盘 - - 使用自带的命令esxcli 列出所有硬盘 esxcli storage core device list[rootlocalhost:~] esxcli storage core device list t10.NVMe____INTEL_MEMPEK1W016GAL____________________PHBT83660BYP016D____00000001Display Name: Local NVMe Disk (t10.NVMe…...
React 事件处理基础
React 中最常见的两个需求,一个是列表渲染,另一个就是绑定点击事件。 这一篇就是从最基础的按钮点击开始,分四个阶段,逐步理解 React 中事件的写法和参数传递方式。 📍阶段一:最简单的点击事件 function A…...
pandas库详解
CONTENT 基本数据结构SeriesDataFrame 数据读取与写入读取 CSV 文件写入 CSV 文件 数据清洗处理缺失值数据类型转换 数据操作索引与切片数据合并数据分组与聚合 数据可视化 基本数据结构 Series Series 属于一维标记数组,由一组数据和对应的索引构成。 import pa…...
焊接机器人的设计
一、引言 随着制造业的发展,焊接工艺在各个领域得到广泛应用。焊接机器人具有焊接质量高、效率高、劳动强度低等优点,能够满足现代制造业对焊接生产的要求。设计一款性能优良的焊接机器人,对于提高焊接生产的自动化水平和产品质量具有重要意…...
python进阶: 深入了解调试利器 Pdb
Python是一种广泛使用的编程语言,以其简洁和可读性著称。在开发和调试过程中,遇到错误和问题是不可避免的。Python为此提供了一个强大的调试工具——Pdb(Python Debugger)。 Pdb是Python标准库中自带的调试器,可以帮助…...
4.黑马学习笔记-SpringMVC(P43-P47)
1.SpringMVC简介 SpringMVC技术(更少的代码,简便)与servlet技术功能相同,属于web层开发技术。 SpringMVC是一种基于java实现MVC模型的轻量级web框架。 轻量级指的是(内存占用比较低,运行效率高)…...
【文件操作与IO】详细解析文件操作与IO (一)
本篇博客给大家带来的是文件操作的知识点. 🐎文章专栏: JavaEE初阶 🚀若有问题 评论区见 ❤ 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条. 你们的支持是我不断创作的动力 . 王子,公主请阅🚀 要开心要快乐顺便进步 一. …...
PMP考试费能报销吗?报销流程是什么?
最近也是到了6月和8月PMP考试的报名高峰期,后台有小伙伴最常问的问题就是,PMP考试费比较贵,能不能报销?报销流程是什么? 先给大家分享一下最新PMP报名消息和考试信息: 添加图片注释,不超过 140…...
机器学习05-CNN
CNN(卷积神经网络)学习文档 一、引言 卷积神经网络(Convolutional Neural Network,CNN)是深度学习中的一种重要网络结构,在图像识别、计算机视觉等领域取得了巨大成功。CNN 的设计灵感来源于生物视觉系统…...
c++ string构造函数和assign函数
c string构造函数和assign函数 #include <iostream> #include <stdlib.h> #include <string> #include <string.h>int main() {char buff[10] {a,b,c,d,e,f,g,h,i,\0};std::string str1;str1.assign(&buff[0],0,10);int length str1.length();i…...
学习threejs,使用EffectComposer后期处理组合器(采用RenderPass、GlitchPass渲染通道)
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.EffectComposer 后期…...
物联网通信协议——TCP与MQTT的对比
在物联网通信中,MQTT和TCP的实现方式和原理完全不同,因为两者属于协议栈的不同层级,解决的问题也不同。以下从协议层级、工作机制和典型场景三个角度详细解释: 1. 协议层级与定位 特性TCPMQTT协议层级传输层(第4层&am…...
docker部署springboot(eureka server)项目
打jar包 使用maven: <build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>17</source><target>17&…...
第 7 期:DDPM 采样提速方案:从 DDPM 到 DDIM
本期关键词:采样加速、DDIM 推导、可控性提升、伪逆过程、代码实战 前情回顾:DDPM 的采样瓶颈 在前几期中,我们构建了一个完整的 DDPM 生成流程。但是你可能已经发现: 生成一张图像太慢了!!! 原因是: DDPM 要在 T 个时间步中一步步地去噪,从 x_T → x_0。而通常 T 至…...
1panel第三方应用商店(本地商店)配置和使用
文章目录 引言资源网站实战操作说明 引言 1Panel 提供了一个应用提交开发环境,开发者可以通过提交应用的方式将自己的应用推送到 1Panel 的应用商店中,供其他用户使用。由此衍生了一种本地应用商店的概念,用户可以自行编写应用配置并上传到自…...
Docker Image export and load and tag
# 在国外服务器保存Docker镜像 docker save myimage > myimage.tar # 将tar文件传输到国内服务器 scp myimage.tar root192.0.2.0:/home # 在国内服务器加载Docker镜像 cd /home docker load < myimage.tar # 查看镜像 docker images #docker 镜像名 tag 为none 的解决方…...
七牛使用任务工作流对音频进行转码
最近工作中有对音频转码的需求,比如 iOS 设备中对 ogg 格式的语音支持力度不够,那么可以讲ogg转码成mp3格式,下面来介绍一下,如果通过七牛,后端自行转码,不需要前端做任何事情。 假设我们存在一个音频的 urlÿ…...
Excel提取图片并自动上传到文件服务器(OOS),获取文件链接
Excel提取图片并自动上传到接口 在实际项目中,我们可能经常会遇到需要批量从Excel文件(.xlsx)中提取图片并上传到特定接口的场景。今天,我就详细介绍一下如何使用Python实现这一功能,本文会手把手教你搭建一个完整的解…...
基于springBoot+vue的PC 端学习系统(源码+lw+部署文档+讲解),源码可白嫖!
摘要 随着我国经济的高速发展与人们生活水平的日益提高,人们对生活质量的追求也多种多样。尤其在人们生活节奏不断加快的当下,人们更趋向于足不出户解决生活上的问题,线上管理系统展现了其蓬勃生命力和广阔的前景。与此同时,在疫…...
JVM对象创建全过程
JVM对象创建全过程深度解析 1. 对象创建的整体流程 JVM创建对象的过程可以分为7个关键步骤,从类检查到内存分配,再到对象初始化: 类加载检查 → 内存分配 → 内存空间初始化 → 对象头设置 → 构造函数执行 → 栈帧引用建立 → 对象使用2.…...
Spring Boot 核心注解全解:@SpringBootApplication背后的三剑客
大家好呀!👋 今天我们要聊一个超级重要的Spring Boot话题 - 那个神奇的主类注解SpringBootApplication!很多小伙伴可能每天都在用Spring Boot开发项目,但你真的了解这个注解背后的秘密吗?🤔 别担心&#x…...
【Python爬虫基础篇】--1.基础概念
目录 1.爬虫--定义 2.爬虫--组成 3.爬虫--URL 1.爬虫--定义 网络爬虫,是一种按照一定规则,自动抓取互联网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。随着网络的迅速发展,万维网成为大量信息的载体…...
CSS进度条带斑马纹动画(有效果图)
效果图 .wxml <view class"tb"><view class"tb-line" style"transform:translateX({{w%}})" /> </view> <button bind:tap"updateLine">增加进度</button>.js Page({data: {w:0,},updateLine(){this.…...
文件二进制读写和文本读写以及编码解码
假如是utf8编码,windows系统 写:往键盘中写的字符会被utf8编码成字节写入文件。假如是文本写,\n会被替换为\r\n写入,结尾会加文件结束符EOF。假如是二进制写,\n就是\n,文件结尾也不会加什么EOF 读ÿ…...
HarmonyOS:使用Refresh组件实现页面下拉刷新上拉加载更多
一、前言 可以进行页面下拉操作并显示刷新动效的容器组件。 说明 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。该组件从API Version 12开始支持与垂直滚动的Swiper和Web的联动。当Swiper设置loop属性为true时&…...
获取印度股票市场列表、查询IPO信息以及通过WebSocket实时接收数据
为了对接印度股票市场,获取市场列表、查询IPO信息、查看涨跌排行榜以及通过WebSocket实时接收数据等步骤。 1. 获取市场列表 首先,您需要获取支持的市场列表,这有助于了解哪些市场可以交易或监控。 请求方法:GETURL:…...
【C++深入系列】:模版详解(上)
🔥 本文专栏:c 🌸作者主页:努力努力再努力wz 💪 今日博客励志语录: 你不需要很厉害才能开始,但你需要开始才能很厉害。 ★★★ 本文前置知识: 类和对象(上) …...
leetcode刷题日记——同构字符串
[ 题目描述 ]: [ 思路 ]: 题目要求判断 s 和 t 是否为同构字符串,即 s 中每个字符与 t 中对应位置的字符形成一个映射关系,且只能是一对一映射ASCII(American Standard Code for Information Interchange)…...
HTTP/1.1 队头堵塞问题
文章目录 一、队头堵塞1、非管线化2、管线化 二、如何解决? 一、队头堵塞 1、非管线化 如图,http 请求必须等到上一个请求响应后才能发送,后面的以此类推,由此可以看出,在一个 tcp 通道中,如果某个 http 请…...
