FPGA 17 ,FPGA 与 SR-IOV虚拟化技术,高性能计算与虚拟化技术的结合(FPGA 与 SR-IOV 和 PCI,高性能计算与虚拟化的完美融合)
目录
前言
一. SR-IOV 的起源与发展
1. SR-IOV 的起源与时间线
2. SR-IOV 的诞生原因
3. SR-IOV 的详细介绍
二. SR-IOV 和 PCI 之间的关系
三. PCI 的起源与演进
1. PCI 的起源与时间线
2. PCI 的关键特性
四. FPGA 的独特魅力
1. FPGA 的定义与特性
2. FPGA 的内部结构详解
3. FPGA 的广泛应用领域
五. FPGA 与 SR-IOV 和 PCI 的关联
1. 加速计算任务
2. 与 SR-IOV 结合提升性能
3. 增强 I/O 性能
4. 实际应用
六. 目前的实际应用场景
1. 国内大厂和机构的应用
1. 为何使用?
2. 解决问题?
3. 应用实例?
2. 国外大厂和机构的应用
1. 为何使用?
2. 解决问题?
3. 应用实例?
3. SR-IOV 技术学习方向
七. 本文总结
前言
在当今数字化时代,高性能计算和高效虚拟化技术在各个领域都发挥着至关重要的作用。这里将以 FPGA(现场可编程门阵列)为核心,深入探讨 FPGA、SR-IOV(单根 I/O 虚拟化技术)以及 PCI(外设部件互连)技术之间的紧密联系,从基本介绍到实际应用,全面展示它们如何共同推动计算领域的进步。
一. SR-IOV 的起源与发展
1. SR-IOV 的起源与时间线
- SR-IOV(Single Root I/O Virtualization)是 PCI-SIG(Peripheral Component Interconnect Special Interest Group)组织于 2007 年左右推出的 I/O 虚拟化技术标准。它的出现是为了应对虚拟化环境中日益增长的性能需求,特别是对于那些需要高效网络和存储连接的应用来说至关重要。
- 2007 年:SR-IOV 规范首次发布,伴随 PCIe 技术的发展而引入。
- 后续发展:随着时间推移,SR-IOV 得到了持续改进和完善,成为现代数据中心不可或缺的一部分。
2. SR-IOV 的诞生原因
- 虚拟化需求的增长:随着多租户环境下的资源隔离、性能优化以及安全性要求的提升,传统软件模拟硬件的方法遇到了瓶颈。
- 硬件辅助虚拟化的需求:为了提高 I/O 密集型应用的性能,减少 Hypervisor 层的数据处理开销,业界开发了像 SR-IOV 这样的直接设备分配技术。
3. SR-IOV 的详细介绍
SR-IOV(Single Root I/O Virtualization)是一种硬件虚拟化技术,它允许一个单一的物理网络接口卡(NIC)、存储适配器或其他兼容设备被虚拟化成多个虚拟功能(Virtual Functions, VFs),从而使得多个虚拟机(VMs)可以直接访问这些虚拟化的资源。SR-IOV 提供了接近本机的性能,因为它绕过了hypervisor中的I/O虚拟化层,减少了数据包处理延迟和CPU使用率。
SR-IOV 的工作原理是基于两个主要组件:物理功能(Physical Function, PF)和虚拟功能(VF)。PF 是 SR-IOV 设备上的全功能资源,可以发现、管理和配置 SR-IOV 功能。每个 PF 可以配置生成多个 VF,VF 是一种轻量级的PF,具有自己独立的配置空间,但其功能受到限制,并依赖于PF进行管理。通过这种方式,一个物理适配器可以表现为多个分离的适配器,每个都能直接由不同的虚拟机或操作系统驱动程序控制。
为了实现高效的通信,SR-IOV 还支持多队列机制,允许多个VF共享同一物理网卡的不同队列,这有助于提高吞吐量和降低延迟。此外,由于VF是直接与物理硬件交互,因此它们能够提供更精细的QoS(服务质量)控制,如带宽分配和流量优先级设置等。
在云计算环境中,SR-IOV 对网络密集型应用特别有利,例如数据库服务、大数据分析以及实时数据处理等场景。它不仅提高了性能,还简化了网络架构,因为不需要为每个虚拟机创建单独的虚拟交换机端口。不过,使用 SR-IOV 也需要考虑一些挑战,包括安全性和隔离性问题,以及对现有网络管理和监控工具的适应性。
综上所述,SR-IOV 技术是现代数据中心和云平台中提升网络性能和效率的关键之一。随着硬件和软件生态系统的不断进化,SR-IOV 将继续演进,为虚拟化环境带来更多的可能性。
二. SR-IOV 和 PCI 之间的关系
- 基于PCI Express:SR-IOV是PCI-SIG组织基于PCI Express (PCIe) 标准开发的技术。
- 依赖PCI Express架构:SR-IOV的工作原理依赖于PCIe提供的点对点连接特性,用于高效的数据传输和资源分配。
- 需要支持SR-IOV的PCI设备:为了实现SR-IOV功能,必须使用支持该特性的PCI设备(如网卡、GPU等)以及相应的服务器硬件。
- 提升虚拟化性能:SR-IOV显著提高了虚拟化环境中I/O操作的性能,减少了通过软件模拟访问PCI设备所带来的CPU开销。
- 资源共享与隔离:SR-IOV允许一个物理PCI设备创建多个虚拟功能(VF),这些VF可以被不同虚拟机独立使用,实现了资源的有效共享和隔离。
- 优化系统效率:通过让多个虚拟机共享同一个物理接口,SR-IOV减少了对专用硬件的需求,降低了成本并提高了系统的整体资源利用率。
三. PCI 的起源与演进
1. PCI 的起源与时间线
- PCI(Peripheral Component Interconnect)是由英特尔公司在 1991 年推出的一种用于定义局部总线的标准。它旨在解决当时计算机内部组件之间的互连问题,提供一个统一的接口标准来连接各种外设,如网卡、声卡和显卡等。随着 Intel Pentium 处理器的诞生,PCI 迅速成为个人电脑和其他计算设备中广泛采用的标准。
- 1991 年:PCI 首次被提出,作为第一代 PCI 规范。
- 1993 年:PCI 2.0 发布,引入了 32 位和 64 位两种版本,并支持更高的时钟频率。
- 1998 年:PCI-X 推出,提高了带宽至 1GB/s,适用于服务器级应用。
- 2004 年:PCIe(PCI Express)问世,采用串行点对点拓扑结构,极大提升了性能和可扩展性。
2. PCI 的关键特性
- 共享总线架构:早期 PCI 使用并行传输方式,所有设备共享一条总线。
- 即插即用 (PnP):简化了硬件安装过程。
- 直接内存访问 (DMA):允许设备直接读写主存,减轻 CPU 负担。
- 热插拔支持:部分版本支持在不关闭系统的情况下添加或移除设备。
四. FPGA 的独特魅力
1. FPGA 的定义与特性
- FPGA 是一种集成电路芯片,具有高度的可编程性。与传统的固定功能芯片(如 ASIC)不同,用户可以在制造完成后通过编程来配置其内部的逻辑功能。
- 它包含大量的可编程逻辑单元(如查找表、寄存器等)、可编程布线资源以及输入 / 输出(I/O)模块,使得用户能够根据具体需求实现各种复杂的逻辑电路。
2. FPGA 的内部结构详解
- 可编程逻辑单元:这是 FPGA 的核心部分,用于实现各种逻辑功能。以查找表(LUT)为例,它可以实现布尔函数。一个 4 输入的查找表能够实现任意 4 变量的布尔函数。比如实现一个简单的与门功能,当输入为 A 和 B 时,查找表可以根据输入组合(00、01、10、11)存储对应的输出值(0、0、0、1),从而实现逻辑与的功能。
- 可编程布线资源:这些资源用于连接各个逻辑单元,使得它们能够按照用户设计的电路逻辑进行通信。就像在城市中修建道路一样,布线资源可以将不同的 “建筑物”(逻辑单元)连接起来,形成一个完整的电路系统。
- I/O 模块:负责 FPGA 芯片与外部设备的连接,它可以支持多种不同的接口标准,如 LVTTL、LVCMOS、PCI-E 等。例如,当 FPGA 需要与一个外部的传感器通信时,I/O 模块可以将传感器的信号(可能是模拟信号经过模数转换后的数字信号)输入到 FPGA 内部进行处理,并且可以将 FPGA 处理后的结果输出给其他外部设备,如显示器或执行机构。
3. FPGA 的广泛应用领域
- 通信领域:在通信基站中,FPGA 可以用于实现高速数据处理和信号调制解调。例如,在 5G 基站中,FPGA 能够处理大量的基带信号,对信号进行编码、解码、波束成形等复杂操作,以提高通信系统的性能和效率。
- 工业自动化:用于控制工业机器人的运动和操作。通过对 FPGA 编程,可以实现机器人的运动控制算法,如路径规划、速度控制等。并且由于 FPGA 的并行处理能力,它可以同时处理多个传感器的数据,如视觉传感器、力传感器等,从而实现更精准的操作。
- 数据中心:用于加速数据处理任务,如在人工智能推理应用中,FPGA 可以加速神经网络的计算。与传统的 CPU 和 GPU 相比,FPGA 可以针对特定的神经网络模型进行定制化的硬件加速,减少计算时间和能耗。
等等
五. FPGA 与 SR-IOV 和 PCI 的关联
FPGA 在 PCI 和 SR-IOV 架构中的作用
1. 加速计算任务
- 硬件加速:FPGA通过PCIe总线连接,为虚拟机提供定制化的硬件加速,适用于大数据分析、机器学习推理等计算密集型任务。
2. 与 SR-IOV 结合提升性能
- 资源共享:结合SR-IOV,FPGA可以创建多个虚拟功能(VF),分配给不同虚拟机,实现高效的硬件加速资源分享。
- 并行处理:充分利用FPGA的并行处理能力,提高多虚拟机环境下的计算效率。
3. 增强 I/O 性能
- 高速接口:FPGA集成高效网络接口,提高数据传输速度和吞吐量。
- 低延迟通信:配合SR-IOV,减少中间件延迟,确保快速的数据处理和传输。
4. 实际应用
- 数据中心:FPGA加速数据库查询、视频转码等任务,结合SR-IOV为多租户提供高性能服务。
- NFV:在网络设备中,FPGA加速包处理和流量分类,支持多租户的高效网络服务。
FPGA在PCI和SR-IOV架构中提供了强大的硬件加速、高效的资源共享和增强的I/O性能,适用于多种高性能计算和网络应用场景。
六. 目前的实际应用场景
SR-IOV(Single Root I/O Virtualization)技术本身并不依赖于FPGA(Field-Programmable Gate Array),并且可以在没有FPGA的情况下非常有效地应用。SR-IOV主要是一种用于提高虚拟化环境中I/O性能的技术,它通过将单个物理设备虚拟化为多个逻辑上的独立功能(VF),从而允许多个虚拟机直接访问这些VF,减少Hypervisor层的数据处理开销,提升数据传输速度和降低延迟。SR-IOV能够在没有FPGA的情况下很好地工作,并且已经在众多领域中得到了广泛应用。FPGA作为一种强大的可编程硬件,可以在某些特定场景下与SR-IOV结合使用,以实现更高级别的性能优化和灵活性,但这并不是SR-IOV正常运作所必需的。因此,SR-IOV离开了FPGA也可以非常好地应用。
1. 国内大厂和机构的应用
1. 为何使用?
国内大厂和机构选择使用 SR-IOV 技术的主要原因是为了解决虚拟化环境中 I/O 性能瓶颈的问题。随着云计算、大数据分析、人工智能等领域的快速发展,越来越多的企业开始重视提高虚拟化环境下的 I/O 性能和资源利用率。SR-IOV 技术能够显著提升网络和存储的性能,降低延迟,并且减少 CPU 负载,从而更好地满足业务需求。
2. 解决问题?
- 性能提升:通过让虚拟机直接访问物理设备,减少了 Hypervisor 层的数据处理开销,提升了数据传输速度。
- 资源利用率:允许多个虚拟机共享同一个物理设备,减少了所需硬件的数量,提高了资源利用率。
- 成本节约:减少了适配器数量,简化了布线,减少了交换机端口,从而降低了运营成本。
- 安全性和隔离性:确保不同虚拟机之间的资源隔离,防止一个虚拟机的问题影响到其他虚拟机。
3. 应用实例?
- 互联网巨头:
- 阿里巴巴云:阿里云在其数据中心中广泛部署了支持 SR-IOV 技术的硬件设备,以提供高性能的网络和存储服务给用户。
- 腾讯云:腾讯利用 SR-IOV 增强虚拟机的网络性能,尤其是在游戏云等需要低延迟的应用场景中。
- 百度智能云:百度云基础设施中集成了 SR-IOV,服务于 AI 训练等高带宽需求的应用。
- 电信运营商:
- 中国移动、中国联通、中国电信:构建 NFV 平台时选择支持 SR-IOV 的技术方案,以确保虚拟化的网络服务能够达到与传统物理设备相近的性能水平。
- 金融机构:
- 银行及其他金融企业:依赖实时交易处理系统的金融机构开始引入 SR-IOV 技术,以保证交易的速度和准确性,同时降低市场波动带来的风险。
- 硬件制造商和服务提供商:
- 浪潮存储:推出了基于 SR-IOV 的企业级 NVMe SSD 产品,帮助云数据中心降本增效。
- 忆恒创源 (Memblaze):为其 SSD 加入 SR-IOV 支持,改善未来汽车驾驶体验中的数据传输效率。
- 寒武纪:云端智能芯片及加速卡系列思元 270 首次引入 SR-IOV 功能,为 AI 计算提供了更好的租户隔离和应用热迁移特性。
- 其他行业参与者:
- 苏宁私有云:通过 SR-IOV 实现虚拟网络性能优化,减少了 CPU 负荷并提高了网络性能。
- 慧荣科技:其主控芯片支持 SR-IOV,改善了未来汽车驾驶体验中的数据传输效率。
2. 国外大厂和机构的应用
1. 为何使用?
国外的大厂和机构同样面临类似的挑战,即如何在虚拟化环境中保持高效能的同时降低成本。SR-IOV 技术为他们提供了一个理想的解决方案,特别是在云计算、金融服务、电信等领域,这些领域对网络带宽和延迟有着极高的要求。
2. 解决问题?
- 性能瓶颈:解决了传统虚拟化架构中因 Hypervisor 层处理导致的性能下降问题。
- 资源优化:通过虚拟化多个功能实体,最大化利用现有硬件资源,减少额外硬件投资。
- 成本控制:降低了适配器数量、简化布线、减少交换机端口,进而降低了总体拥有成本(TCO)。
- 安全性:加强了虚拟机之间的隔离,提升了系统的整体安全性。
3. 应用实例?
- 云服务提供商:
- 亚马逊 AWS:在其弹性计算云(EC2)实例中支持 SR-IOV,提供更优质的网络服务。
- 微软 Azure:Azure 平台利用 SR-IOV 来增强虚拟机的网络性能。
- 谷歌云平台 (GCP):为用户提供了高性能的网络连接选项。
- 电信运营商:
- AT&T、Verizon、Deutsche Telekom:在 NFV 平台上采用 SR-IOV 技术,以满足虚拟化网络服务的性能要求。
- 金融机构:
- 摩根大通、高盛:这些大型银行也在探索或实施 SR-IOV 技术,以优化其内部 IT 系统。
- 硬件制造商和服务提供商:
- 英特尔、AMD:这两家公司在其处理器和支持芯片组上广泛支持 SR-IOV。
- NVIDIA:在其 GPU 产品线上加入了对 SR-IOV 的支持,以满足高性能计算和图形处理的需求。
3. SR-IOV 技术学习方向
- 基础理论:SR-IOV原理、工作机制及优势;核心概念如PF、VF、IOMMU。
- 硬件配置:支持SR-IOV的硬件厂商及产品;BIOS/UEFI启用和命令行配置方法。
- 虚拟化集成:在KVM、VMware、Hyper-V中部署SR-IOV;不同平台的支持差异。
- 网络与存储:SR-IOV在NFV和分布式存储中的应用;结合DPDK优化性能。
- 安全隔离:IOMMU的作用和资源隔离方法;确保虚拟机之间资源共享的安全性。
- 高级应用:FPGA结合SR-IOV的应用场景;开发基于SR-IOV的自定义驱动程序或模块。
- 性能调优:使用iperf等工具进行性能基准测试;识别和解决常见的性能瓶颈。
- 案例分析:行业实际应用案例,包括互联网巨头、电信运营商、金融机构的应用。
七. 本文总结
从 FPGA 的高度可编程性到 PCI 的互连标准,再到 SR-IOV 的 I/O 虚拟化技术,这三项技术在计算领域中相互依存、协同发展。FPGA 为计算任务提供了灵活的硬件加速解决方案,PCI 奠定了现代计算机系统互连的基础,而 SR-IOV 则在虚拟化环境中进一步提升了 I/O 性能。无论是国内还是国外的大厂和机构,都在积极采用这三项技术,并不断探索它们的结合应用,以解决虚拟化环境中存在的性能瓶颈、资源优化和成本控制等问题。未来,随着相关技术和标准的不断完善,预计会有更多企业和组织采纳这一先进技术组合,继续推动计算行业的创新发展。
完整FPGA系列,请看
FPGA系列,文章目录https://blog.csdn.net/weixin_65793170/article/details/144185217?spm=1001.2014.3001.5501
相关文章:
FPGA 17 ,FPGA 与 SR-IOV虚拟化技术,高性能计算与虚拟化技术的结合(FPGA 与 SR-IOV 和 PCI,高性能计算与虚拟化的完美融合)
目录 前言 一. SR-IOV 的起源与发展 1. SR-IOV 的起源与时间线 2. SR-IOV 的诞生原因 3. SR-IOV 的详细介绍 二. SR-IOV 和 PCI 之间的关系 三. PCI 的起源与演进 1. PCI 的起源与时间线 2. PCI 的关键特性 四. FPGA 的独特魅力 1. FPGA 的定义与特性 2. FPGA 的内…...
RabbitMQ 安装、配置和使用介绍 使用前端js直接调用方式
1. 安装 RabbitMQ 1.1 安装 Erlang RabbitMQ 是基于 Erlang 语言开发的,因此首先需要安装 Erlang。 在 Ubuntu 上安装 Erlang: bash sudo apt-get update sudo apt-get install erlang 在 CentOS 上安装 Erlang: bash sudo yum insta…...
MySQL基础大全(看这一篇足够!!!)
文章目录 前言一、初识MySQL1.1 数据库基础1.2 数据库技术构成1.2.1 数据库系统1.2.2 SQL语言1.2.3 数据库访问接口 1.3 什么是MySQL 二、数据库的基本操作2.1 数据库创建和删除2.2 数据库存储引擎2.2.1 MySQL存储引擎简介2.2.2 InnoDB存储引擎2.2.3 MyISAM存储引擎2.2.4 存储引…...
芯品荟|SWM221系列芯片之TFTLCD彩屏显示及控制
“革新未来,智驭控制新纪元”,由广东华芯微特集成电路有限公司市场总监张琢,对SWM221系列的强大功能表现进行了整体介绍。 确实,华芯微特在TFTLCD显示及控制有十多年应用基础和积累的团队,仍勇于挑战,自我…...
贪心算法【1】
文章目录 860. 柠檬水找零题目解析算法原理代码实现交换论证法 2208. 将数组和减半的最少操作次数题目解析算法原理代码实现交换论证法 179. 最大数题目解析算法原理代码实现 860. 柠檬水找零 题目链接:860. 柠檬水找零 题目解析 一杯柠檬水5块钱,每个…...
Python PPT合并与拆分 – 详解
目录 使用工具 Python 合并 PPT 合并多个PPT文档 合并每个PPT文档中的特定幻灯片 Python 拆分 PPT 按幻灯片数量拆分 按幻灯片范围拆分 按幻灯片内容拆分 按节 (Section) 拆分 在日常工作或学习中,我们经常需要对PPT文件进行调整,比如将多个PPT…...
JSX:JavaScript的XML
简介 JSX是一种JavaScript的语法扩展,它允许你在JavaScript代码中写类似于HTML的标记。它被React框架广泛使用,以声明式地描述UI组件。JSX最终会被编译成JavaScript对象。 为什么使用JSX? 可读性:JSX使得组件的结构更加清晰&am…...
SAP ABAP-日期格式问题 SAP内部错误,反序列化JSON字符串时发生异常 值 20241215 不是根据 ABAP 的 XML 格式的有效日期
SAP ABAP-日期格式问题 SAP内部错误,反序列化JSON字符串时发生异常 值 20241215 不是根据 ABAP 的 XML 格式的有效日期 在SAP内部用 YYYYMMDD没有问题 外部传入参数...
Golang学习笔记_05——延迟调用
Golang学习笔记_02——函数 Golang学习笔记_03——匿名函数和闭包 Golang学习笔记_04——递归函数 文章目录 延迟调用1. 延迟调用1.1 使用场景1.2 示例 2. panic2.1 使用场景2.2 示例 3. recover3.1 使用场景3.2 示例 源码 延迟调用 在Go语言中,延迟调用࿰…...
C++:异常(下)
异常上:C:异常(上)-CSDN博客 一:异常的重新抛出 大家看下面如果不在里面处理一下的话delete没有运行过。 #include<iostream> #include<string> using namespace std; double division(int a, int b) {if…...
从〇开始深度学习(番外)——下载包
从〇开始深度学习(番外)——下载包 文章目录 从〇开始深度学习(番外)——下载包写在前面正文 写在前面 《从〇开始深度学习(番外)》系列主要记录一些细碎知识点和技能,与主线并不冲突。如果主线笔记中用得到番外篇的知识或技能,会…...
云原生是什么
云原生是一种构建和运行应用程序的方法,它充分利用了云计算的优势。它不仅仅是指在云上运行应用程序,更重要的是指应用程序的设计、开发、部署和运维方式都充分考虑了云环境的特性,从而能够更好地利用云的弹性、可扩展性和灵活性。 更详细地…...
构建Modbus TCP写多个寄存器指令详解
构建Modbus TCP写多个寄存器指令详解 在Modbus TCP通信中,构建正确的指令对于实现设备间的数据交换至关重要。本文将详细解释如何构建一个Modbus TCP指令,用于向设备地址为1的从站,从地址200(0xC8)开始,连…...
热更新解决方案3 —— xLua
概述 xLua框架导入和AB包相关准备 xLua导入 其它的导入 C#调用Lua 1.Lua解析器 using System.Collections; using System.Collections.Generic; using UnityEngine; //引用命名空间 using XLua;public class Lesson1_LuaEnv : MonoBehaviour {// Start is called before the fi…...
【Linux】——权限
文章目录 权限的概念创建与删除普通用户普通用户与root用户的切换权限管理权限设置 文件掩码权限的作用粘滞位 权限的概念 在Linux系统中,存在两种主要用户类型,即超级用户root与普通用户。超级用户拥有极高的权限,可以在 Linux 统下执行几乎…...
elasticsearch 使用enrich processor填充数据
文章目录 使用 POST 请求手动插入用户数据1. 创建 Enrich Policy步骤 1.1: 创建 Enrich Policy步骤 1.2: 执行 Enrich Policy 2. 创建 Ingest Pipeline步骤 2.1: 创建 Ingest Pipeline步骤 2.2: 配置 Enrich Processor 参数 3. 使用 Ingest Pipeline步骤 3.1: 使用 Pipeline 进…...
etcd性能调优
性能指标 决定 etcd 性能的关键因素,包括: 延迟 (latency):延迟是完成操作的时间。吞吐量 (throughput):吞吐量是在某个时间期间之内完成操作的总数量。当 etcd 接收并发客户端请求时,通常平均延迟随着总体吞吐量增加…...
docker离线安装、linux 安装docker
之前写过一篇docker的离线安装,现在从头再看繁琐了,服务器换了,既然要重搭一遍就要改进一下了。下面步入正题: 1.下载离线软件包 https://download.docker.com/linux/static/stable/x86_64/docker-20.10.6.tgz 2.下载安装工具包…...
信息安全工程师-选择题考点总结
密码理论知识 基础理论 一个密码系统至少由明文、密文、加密算法、解密算法和密钥五个部分组成,而其安全性是由密钥决定的。 按照密钥特征的不同,密码体制分为:对称密码体制和非对称密码体制。 按照对明文加密方式的不同,密码体制分为:流密码和分组密码。 非对称密码体…...
【C++】四季分类题目分析与讨论
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯题目说明💯题目代码实现1.我的做法代码示例解析 2. 老师的类C解法代码示例解析 3. 老师的类C解法代码示例解析 4. 老师新增的基于if的解法代码示例解析 &#x…...
mysqlbinglog如何查看进度呢
要查看 MySQL binlog 的进度,通常是指查看 binlog 文件的当前位置,这对于了解复制进度或者进行恢复操作非常重要。以下是一些常用的方法和 SQL 语句来查看 binlog 进度: 查看当前 binlog 文件和位置: SHOW MASTER STATUS;这个命令…...
CSS系列(11)-- 滤镜与混合模式详解
前端技术探索系列:CSS 滤镜与混合模式详解 🎨 致读者:探索视觉效果的艺术 👋 前端开发者们, 今天我们将深入探讨 CSS 滤镜与混合模式,学习如何创建独特的视觉效果。 滤镜效果详解 🚀 基础滤…...
Cesium进阶教程——自定义图形、外观、绘图基础、现有着色器移植至Cesium、ShadowMapping、视频GIS、模型压平、卷帘
基础必看 WEBGL基础(从渲染管线角度解读) 参考路线 http://www.xt3d.online/tutorial/further/article.html 自定义图形 https://blog.csdn.net/m0_55049655/article/details/138908327 https://blog.csdn.net/m0_55049655/article/details/140306837 …...
搭建Tomcat(一)---SocketServerSocket
目录 引入1 引入2--socket 流程 Socket(应用程序之间的通讯保障) 网卡(计算机之间的通讯保障) 端口 端口号 实例 client端 解析 server端 解析 相关方法 问题1:ServerSocket和Socket有什么关系? ServerSocket Soc…...
Sublime Text 64位:前端及全栈开发利器
本文还有配套的精品资源,点击获取 简介:Sublime Text作为一款高效的文本编辑器,在前端网页开发领域受到广泛青睐,特别是其64位版本在处理大型项目和高内存需求的场景下表现出色。编辑器内置Emmet插件,提供代码高亮、…...
CNCF云原生生态版图-分类指南(一)- 观测和分析
CNCF云原生生态版图-分类指南(一)- 观测和分析 CNCF云原生生态版图-分类指南一、观测和分析(Observability and Analysis)(一)可观测性(Observablility)1. 是什么?2. 解决…...
Ubuntu本地快速搭建web小游戏网站,公网用户远程访问【内网穿透】
文章目录 前言1. 本地环境服务搭建2. 局域网测试访问3. 内网穿透3.1 ubuntu本地安装cpolar内网穿透3.2 创建隧道3.3 测试公网访问4. 配置固定二级子域名4.1 保留一个二级子域名4.2 配置二级子域名4.3 测试访问公网固定二级子域名前言 网:我们通常说的是互联网;站:可以理解成…...
VMware ubuntu12.04怎么设置静态IP联网
记得刚开始学习嵌入式就是从ubuntu12.04的环境开始学习的C语言,当时没有弄清楚怎么设置静态IP联网,现在写一篇文章。 1.首先,关闭ubuntu的网络; 2.电脑使用的是wifi,将VMware桥接到该网卡上; 3.在虚拟机设置里面选择桥…...
Qt WORD/PDF(一)使用 QtPdfium库实现 PDF 预览
文章目录 一、简介二、下载 QtPdfium三、加载 QtPdfium 动态库四、Demo 使用 关于QT Widget 其它文章请点击这里: QT Widget 姊妹篇: Qt WORD/PDF(一)使用 QtPdfium库实现 PDF 操作 Qt WORD/PDF(二)使用 QtPdfium库实现…...
UE5 C++ Subsystem 和 多线程
一.Subsystem先做一个简单的介绍,其实可以去看大钊的文章有一篇专门讲这个的。 GamePlay框架基础上的一个增强功能,属于GamePlay架构的范围。Subsystems是一套可以定义自动实例化和释放的类的框架。这个框架允许你从5类里选择一个来定义子类(只能在C定义…...
23.DDD与微服务
学习视频来源:DDD独家秘籍视频合集 https://space.bilibili.com/24690212/channel/collectiondetail?sid1940048&ctype0 文章目录 DDD与微服务的关系1. DDD可以用微服务实现,也可以不用微服务实现2. DDD是微服务拆分的必须参考项之一3. 微服务架构…...
vue3+ant design vue实现日期选择器不展示清除按钮
1、代码:只需设置:allowClear"false"即可 <a-date-pickerv-model:value"value1":disabledDate"disabledDate"change"queryRate":allowClear"false" />const disabledDate (current: Dayjs) > {// 获取…...
Amazon Bedrock与AWS服务的无缝集成,如何打造智能化应用
在AI和大数据飞速发展的今天,Amazon Bedrock作为AWS的一项新兴服务,正逐渐成为开发者和企业拥抱生成式AI的核心工具。那么,Amazon Bedrock与AWS其他服务结合,究竟能够带来哪些强大的应用场景呢?今天九河云就来和大家探…...
Rust之抽空学习系列(四)—— 编程通用概念(下)
Rust之抽空学习系列(四)—— 编程通用概念(下) 1、函数 函数用来对功能逻辑进行封装,能够增强复用、提高代码的可读 以下是函数的主要组成部分: 名称参数返回类型函数体 1.1、函数名称 在Rust中&…...
【Apache paimon】-- 集成 hive3.1.3 异常
目录 1、场景再现 Step1:在 hive cli beeline 执行创建 hive paimon 表 Step2:使用 insert into 写入数据 Step3:抛出异常 2、原因分析 Step1:在 yarn resource manager 作业界面查询 hive sql mr job 的 yarn log Step2:搜索job 使用的 zstd jar 版本 Step3:定…...
SpringCloud微服务实战系列:01让SpringCloud项目在你机器上运行起来
目录 项目选型 项目安装-本地运行起来 软件安装: 项目启动: 总结&答疑 项目选型 软件开发,基本上都不会从0开始,一般都是在其他项目或者组件的基础上进行整合优化迭代,站在巨人肩膀上才能看得更远,…...
分布式锁【Redis场景分布式锁篇】
文章目录 1.Redis分布式锁2.分布式锁其它方案1.主动轮询型1.MySQL分布式锁2.Redis分布式锁 2.监听回调型1.Etcd2.Zookeeper 总结 1.Redis分布式锁 锁通常用来控制共享资源,比如一个进程内有多个线程竞争一个数据的使用权限,解决方式之一就是加锁。分布式…...
BGP协议
BGP(Border Gateway Protocol,边界网关协议)是一种用于在不同网络之间传输可达性信息的路由协议。它是互联网上使用的主要协议之一,用于连接不同的自治系统(AS),即由单个实体控。边界网关协议_百…...
iframe webview打开外链内嵌video标签导致视频无法全屏展示
iframe webview打开外链内嵌video标签导致视频无法全屏展示 解决方法iframe 添加属性webview 添加属性 解决方法 iframe 添加属性 <iframe style"width: 100%;height: 100vh;" src"http://xxx.xxx........" allowfullscreen"true" w…...
学习日志024--opencv中处理轮廓的函数
目录 前言 一、 梯度处理的sobel算子函数 功能 参数 返回值 代码演示 二、梯度处理拉普拉斯算子 功能 参数 返回值 代码演示 三、Canny算子 功能 参数 返回值 代码演示 四、findContours函数与drawContours函数 功能 参数 返回值 代码演示 …...
【从零开始入门unity游戏开发之——C#篇05】转义字符、@处理多行文本或者不使用转义字符、随机数
文章目录 一、转义字符1、什么是转义字符?2、常见的转义字符3、总结 二、使用处理多行文本或者不使用转义字符1、多行字符串2、不使用转义字符 三、随机数1、Random.Next()生成随机整数示例:生成一个随机整数生成指定范围内的随机整数 2、Random.NextSin…...
PHP获取指定日期的下周日至下周六的日期(下周几的日期)
PHP获取指定日期的下周日至下周六的日期(下周几的日期) 在PHP中,可以使用strtotime()函数来获取指定日期的下周日至下周六的日期。 // 周天 sunday // 周一 monday // 周二 tuesday // 周三 wednesday // 周四 thursday // 周五 friday // …...
超越飞书钉钉:探索高效内部知识库平替方案与应用
在团队协作日益频繁的今天,飞书与钉钉作为两大主流的企业沟通与协作平台,广受企业青睐。然而,随着企业规模的扩大和知识的累积,单纯的沟通与协作已难以满足企业对知识管理与传承的需求。因此,寻找一款能够高效整合内部…...
3D相框案例讲解(详细)
前言 通过现阶段的学习,我们已经掌握了HTML,CSS和JS部分的相关知识点,现在让我们通过一篇案例,来巩固我们近期所学的知识点。 详细视频讲解戳这里 任务一 了解目标案例样式 1.1了解案例 3D相框 1.2 分析案例 首先我们看到一个…...
一、基于langchain使用Qwen搭建金融RAG问答机器人--技术准备
一,LangChain框架介绍 LangChain 框架是一个开源工具,通过为各种 LLM 提供通用接口来简化应用程序的开发流程,帮助开发者自由构建 LLM应用。 LangChain封装了很多组件,通过这些组件的组合可以构建多种类型的RAG应用。开发者可以直接将私有数…...
2024年全球安全光幕装置行业总体规模、主要企业国内外市场占有率及排名
根据研究团队调研统计,2023年全球安全光幕装置市场销售额达到了46亿元,预计2030年将达到70亿元,年复合增长率(CAGR)为6.4%(2024-2030)。中国市场在过去几年变化较快,2023年市场规模为…...
uniapp跨端适配—条件编译
在uniapp中,跨端适配是通过条件编译实现的。条件编译允许开发者根据不同的平台(如iOS、Android、微信小程序、百度小程序等)编写不同的代码。这样可以确保每个平台上的应用都能得到最优的性能和用户体验。 以下是uniapp中条件编译的基本语法…...
HTML、CSS表格的斜表头样式设置title 画对角线
我里面有用到layui框架的影响,实际根据你自己的框架来小调下就可以 效果如下 上代码 <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-wi…...
自动驾驶控制与规划——Project 2: 车辆横向控制
目录 零、任务介绍一、环境配置二、算法三、代码实现四、效果展示 零、任务介绍 补全src/ros-bridge/carla_shenlan_projects/carla_shenlan_stanley_pid_controller/src/stanley_controller.cpp中的TODO部分。 一、环境配置 上一次作业中没有配置docker使用gpu,…...
Docker的初识
目录 1. 容器技术发展史1.1 Jail 时代1.2 云时代1.3 云原生时代1.3.1 Google & Docker 竞争1.3.2 k8s 成为云原生事实标准 2. 虚拟化和容器化的概念2.1 什么是虚拟化、容器化2.2 为什么要虚拟化、容器化?2.3 虚拟化实现方式2.3.1 应用程序执行环境分层2.3.2 虚拟…...